命令模式是一种非常优美的设计模式,命令定义了命令接收者的一系列操作,当司令官发出命令的时候,命令接收者负责执行,在这个过程中,司令官只负责执行命令,至于命令的执行情况通过返回值来控制,对命令的执行过程是完全透明的。
1、定义命令接收者,命令接收者需要能够实现一些列的操作,这些操作与命令无关,只是命令接收者的行为,也就是说,如果命令接收者只会吃饭睡觉,你让他打代码他也干不来
2、命令接口,生成新的命令只需要实现这个接口,并且重写里面的方法
3、定义命令,命令一般为完成指定工作的一系列逻辑,因此才具有封装成命令的价值,好比如把一个菜谱封装成一个命令
4、司令官只负责发出相应的命令,换言之就是让他来实例化指定的命令
运行代码就会看到输出相应的结果了
这种设计模式的优点就是我们可以把一系列的操作定义成一个命令,但是这个时候我们可能会有一个疑问就是,觉得这种做法更加的麻烦,我们很多时候都会直接封装一个方法,然后在方法里面放一系列的操作,比如做一道菜的逻辑。这就是为什么我们需要学习设计模式的原因,很多时候我们如果我们只是为了实现一个可行的业务逻辑,这跟设计模式是毫无关系的,我们学习设计模式是为了设计项目的架构,而不仅仅是为了实现功能逻辑