Design patterns 基于上下文调用方法的派生alogrithms策略模式
我需要一些设计帮助。 我有一个类,我们称它为宇宙飞船,它可以实现多种行为。 我定义了一个接口来声明每个行为支持的操作。 到目前为止,这是经典的战略模式 然而,实现的策略需要能够调用上下文类上的操作和方法。我一直在考虑将上下文本身作为接口传递给封装的算法 这是最好的方法吗?如果没有,你会推荐什么Design patterns 基于上下文调用方法的派生alogrithms策略模式,design-patterns,strategy-pattern,Design Patterns,Strategy Pattern,我需要一些设计帮助。 我有一个类,我们称它为宇宙飞船,它可以实现多种行为。 我定义了一个接口来声明每个行为支持的操作。 到目前为止,这是经典的战略模式 然而,实现的策略需要能够调用上下文类上的操作和方法。我一直在考虑将上下文本身作为接口传递给封装的算法 这是最好的方法吗?如果没有,你会推荐什么 取决于您的策略需要上下文,您可以考虑使用观察者模式使其成为事件,从而使您的策略不与上下文耦合。 例如,如果您的策略导致您的上下文中的某些内容发生变化,则这些事件可能是某些中间人(或您的上下文本身)订阅的
取决于您的策略需要上下文,您可以考虑使用观察者模式使其成为事件,从而使您的策略不与上下文耦合。
例如,如果您的策略导致您的上下文中的某些内容发生变化,则这些事件可能是某些中间人(或您的上下文本身)订阅的。我认为您计划做的事情很好。需要考虑的一件事是不要向行为类的方法传递太多信息。例如,如果你的宇宙飞船有一个
发动机行为
,只把你的油箱
和驱动装置
传递给它,而不是整个宇宙飞船。我认为这是一个使用依赖注入的好方法。这样,行为不需要跟踪上下文类型,只需要确保操作/方法在上下文类对象上可用。您可以提供上下文类的更多详细信息吗?还是将其纳入太空船类比?