【发布时间】:2019-04-01 16:44:41
【问题描述】:
我收到了一份家庭作业。我无法决定使用哪种设计模式。
我目前已经实施了策略模式。但是我的一些朋友正在实施工厂设计模式。我只需要同样的验证。
这就是问题所在:
假设您在一家新成立的初创公司工作,在那里您创建了一组专门的算法。每种算法的接口在算法的输入和输出方面都有很好的定义。例如:
// Class: AlgorithmFn1 public java.util.List compute(java.util.Map<String, Float> data) // Class: AlgorithmFn2 public java.util.Map<String, Integer> compute(java.util.Collection data)等等……
这家初创公司计划将这些专用算法作为库(.jar 文件)出售给其客户组织,用于他们的软件应用程序。这些算法的内部实现在不影响算法接口的情况下不断发展。
您需要实现一组合适的类(在 Java 中),客户组织可以使用这些类:
获取实现各自算法的具体类的新实例。
保护客户的代码免受未来算法实现的更改。也就是说,您需要设计合适的类,这些类将利用面向对象的编程原则来创建相关对象的族,而无需指定这些对象的具体类的名称。
【问题讨论】:
-
听起来像工厂。
-
为什么是工厂模式?
标签: java design-patterns