【发布时间】:2015-04-13 20:09:14
【问题描述】:
你能为以下场景推荐一些好的设计模式吗:
我们有多家供应商,分别称为公司 A、B 和 C。每家公司都有自己的业务逻辑。
【问题讨论】:
-
“我想写一些包装类,它应该决定调用哪个公司,覆盖所有通用方法并执行所有操作。”你为什么要这样做?这似乎抛弃了你上面描述的一切。无论如何,听起来它可能是一个代理模式。
标签: java oop design-patterns
你能为以下场景推荐一些好的设计模式吗:
我们有多家供应商,分别称为公司 A、B 和 C。每家公司都有自己的业务逻辑。
【问题讨论】:
标签: java oop design-patterns
对我来说闻起来像策略模式:link
内部接口定义将由具体供应商执行的方法。具体的供应商必须实现接口并添加自己的方法(策略)实现。
【讨论】:
【讨论】:
您可以使用CompanyTemplate 接口,其中包含公司A、B 和C 应实现的所有常用方法 -
public interface CompanyTemplate{
public someCommonMethod();
}
之后A 可以补充CompanyTemplate -
public class A implements `CompanyTemplate` {
public void someCommonMethod(){
//implementation code
}
//Other methods special only for company for A
}
【讨论】:
如果您的业务逻辑与不同供应商的creation of different objects 相关,您可以使用Factory Method / Factory_ 模式。
如果你的业务逻辑与change behaviour of system相关,针对不同的厂商,可以使用Strategy_pattern
有关这些模式的更多详细信息,请参阅相关的 SE 问题:
Real World Example of the Strategy Pattern
What is the basic difference between the Factory and Abstract Factory Patterns?
What is the difference between Factory and Strategy patterns?
【讨论】: