Ach*_*zen 8 java design-patterns
例如:http://www.tutorialspoint.com/design_pattern/factory_pattern.htm
如果我在抽象类Shape上更改接口形状,则使具体类扩展Shape并使Shape工厂返回Shape抽象类类型对象.它仍然是工厂模式吗?
我会同意的。
让我们看一下Factory方法模式的定义:
工厂方法模式是一种创建模式,该模式使用工厂方法来处理创建对象的问题,而无需指定将要创建的对象的确切类
这种模式背后的动机是使用对象将创建对象与客户端分开。客户应向工厂提供规范,但工厂将抽象出如何构建对象的详细信息。
如果这是接口或抽象类,则是针对具体情况的实现细节,只要您对工厂的实现可以让您获得模式背后的动力。
如果以下任何一种情况适用于您的情况,请考虑使用抽象类:
您想在几个紧密相关的类之间共享代码。
您期望扩展您的抽象类的类具有许多公共方法或字段,或者需要除public(例如protected和private)之外的访问修饰符。
您要声明非静态或非最终字段。这使您能够定义可以访问和修改它们所属对象的状态的方法。
如果以下任何一种情况适用于您的情况,请考虑使用接口:
您期望不相关的类将实现您的接口。例如,接口Comparable和Cloneable由许多不相关的类实现。
您想指定特定数据类型的行为,但不关心谁实现了它的行为。
您想利用类型的多重继承。
在某些实现中,使用抽象类而不是工厂创建的产品的接口甚至更有意义。如果所有产品之间都有一组共享的功能/行为,那么将这些功能/行为放入基本抽象类中确实很有意义。即使产品是从其他工厂制造的,这也可能适用。
归结为:您是否愿意,在产品之间引入耦合是否有意义?最后,客户将获得相同的结果-根据规格构建产品,并提取构造细节。
| 归档时间: |
|
| 查看次数: |
4053 次 |
| 最近记录: |