我觉得command命令模式的本质就是把触发者和接受者隔离开来,把一个函数能干的事情提升到类的级别 搞一个基类包含虚函数excute() 搞好多具体的接受者类C**command(),在具体接收类中去实现excute,和触发者invoke接触的是基类,利用多态性,真正干事儿的是具体的接受者类,这样隔离开来,无论加多少具体的接受者类 既有代码都不受影响 非常灵活
很多linux的软件既可以支持UI操作,也可以支持命令函操作。这时候就必须用command模式。 |
command模式实际上把软件真正的业务逻辑和UI解耦了 |
command对象化后也可以支持事务回滚之类的高级功能 sql数据库里记录的那些日志就是被记录下来的command.对数据库事务回滚。 计算机软件科学就是加间接层实现抽象的科学。 当然每加一个间接层软件都会复杂一些。所以这里面实际还是一个度的问题,不是越松耦合,越模块化的东西就越好。看实际解决的问题。强耦合的代码可读性是最好的。 |
时间: 2024-08-28 17:18:04