《左耳听风》 学习笔记 day29

88 阅读2分钟

大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习架构😊

命令模式是一种行为设计模式,它可以将一个请求封装为一个对象,从而使我们可以用不同的请求对客户进行参数化。

命令模式通常包含如下几个主要角色:

  • 抽象命令类(Command):声明了执行操作的接口,通常包含执行方法 execute()。

  • 具体命令类(Concrete Command):是抽象命令类的具体实现类,它实现了接收者对应的实际操作。

  • 请求者类(Invoker):负责调用命令对象执行请求,通常会持有一个或多个命令对象。

  • 接收者类(Receiver):知道如何实际执行与命令相关联的操作。它有一个与命令相关的方法用于执行操作。

命令模式有以下主要优点:

  1. 降低系统耦合度。使用命令对象来封装请求,使调用对象与接收对象解耦。

  2. 容易扩展。可以通过增加新的具体命令类来扩展系统,而无需修改请求发送者或接收者。

  3. 容易维护。使用命令对象可以对请求进行排队、日志记录、事务控制等处理,方便系统维护与扩展。

  4. 可以实现宏命令。一个宏命令可以包含一个或多个原子命令,实现一系列的操作。

但是,命令模式也有一定的缺点:1. 可能产生较多的具体命令类。当系统中命令较多时,需要设计较多的具体命令类,增加了系统的复杂度。2. 与直接调用相比,会稍微影响系统性能。有命令对象的系统需要额外执行一系列与命令对象有关的操作,这比简单的方法调用会慢一些。命令模式在实际开发中有着较广泛的应用,如线程池的工作任务就采用了命令模式。

总体来说,命令模式是一个比较常用和实用的行为设计模式。熟练使用它可以使我们的系统具备较好的扩展性、解耦性与可维护性。命令模式主要体现的思想是:将“行为请求”与“行为执行”分离开来。使用命令对象来封装一个行为请求,使相同的请求可以执行不同的操作,也可以将多个请求串起来组成一个宏命令。这种思想在软件设计中使用得非常广泛

此文章为4月Day23学习笔记,内容来源于极客时间《左耳听风》 这门课真的非常好,推荐大家看看