实施策略模式时,如何确定哪个类负责 为:
答案 0 :(得分:1)
这与我在DI容器中遇到的问题非常接近。看看here,Mark Seemann提供了一个很好的答案。
答案 1 :(得分:1)
如果您正在尝试解决特定情况,那么您正在寻找abstract factory pattern。工厂根据运行时信息确定如何实例化一系列类型。
如果您想知道如何在摘要中解决这种情况,那么您正在寻找一个Inversion of Control container,它管理组织和依赖项的实现。该策略的注册将包括条件逻辑。
答案 2 :(得分:0)
这个决定是特定于上下文的,就像其他所有Desing Patterns一样。引用GoF书(italics mine):
什么是设计模式?
克里斯托弗·亚历山大说:“每种模式都描述了一个在我们的环境中反复出现的问题,然后描述了该问题解决方案的核心,这样你可以使用这个解决方案一百万次, 没有做过两次相同的方式“[AIS + 77,第x页]。尽管亚历山大正在讨论建筑和城镇中的模式,但他所说的面向对象设计模式却是如此。我们的解决方案以对象和界面而不是墙壁和门来表达,但两种模式的核心是上下文中问题的解决方案。
...
解决方案描述构成设计的元素,它们之间的关系,职责和协作。解决方案没有描述具体的具体设计或实现,因为模式就像一个模板,可以应用于许多不同的情况。相反,该模式提供了设计问题的抽象描述,以及元素的一般排列(在我们的例子中是类和对象)如何解决它。