Oop 国家模式与战略模式的区别
看看GoF模式,我发现国家和国家模式之间的相似性相当惊人。 两者都交换出多态类来修改行为。还有人发现了同样的吗Oop 国家模式与战略模式的区别,oop,design-patterns,strategy-pattern,state-pattern,Oop,Design Patterns,Strategy Pattern,State Pattern,看看GoF模式,我发现国家和国家模式之间的相似性相当惊人。 两者都交换出多态类来修改行为。还有人发现了同样的吗 具体的区别是什么?战略模式决定如何执行某些行动,而状态模式决定何时执行这些行动 通过使用状态模式,状态持有(上下文)类不再需要了解它是什么状态或类型以及可用的状态或类型。这意味着该类遵循开放-关闭设计原则(OCP):该类对于存在的状态/类型的更改是关闭的,但状态/类型对扩展是开放的 通过使用策略模式,使用(上下文)类的算法不再需要了解如何执行特定任务(“算法”)。这种情况也造成了对OC
具体的区别是什么?战略模式决定如何执行某些行动,而状态模式决定何时执行这些行动 通过使用状态模式,状态持有(上下文)类不再需要了解它是什么状态或类型以及可用的状态或类型。这意味着该类遵循开放-关闭设计原则(OCP):该类对于存在的状态/类型的更改是关闭的,但状态/类型对扩展是开放的
通过使用策略模式,使用(上下文)类的算法不再需要了解如何执行特定任务(“算法”)。这种情况也造成了对OCP的遵守;该类已关闭,以更改如何执行此任务,但是设计非常开放,可以添加其他算法来解决此任务状态和策略模式在某种意义上是相似的,它们都将行为封装在单独的对象中,并使用组合来委托给组合对象来实现行为,并且它们都提供了更改行为的灵活性通过在运行时更改组合对象来动态执行行为。但有一些关键区别:
重复“因此,行为更改对‘客户机’不透明,由客户机发起和控制。”我猜这不是‘客户机’,而是‘上下文’。@AnutomaschHandy这在上下文中是相同的。