例如 :http://www.tutorialspoint.com/design_pattern/factory_pattern.htm http://www.tutorialspoint.com/design_pattern/factory_pattern.htm
如果我更改抽象类 Shape 上的接口形状,请创建具体类来扩展 Shape 并使 Shape 工厂返回 Shape 抽象类类型对象。它仍然是工厂模式吗?
我会同意。
我们来看一下工厂方法模式的定义:
工厂方法模式是创造的该模式使用工厂方法来处理创建对象的问题,而无需指定将创建的对象的确切类
此模式背后的动机是将对象创建与使用该对象的客户端分开。客户端应该向工厂提供规范,但对象如何构建的详细信息由工厂抽象出来。
如果这是一个接口或抽象类,则是特定于情况的实现细节,只要您的工厂实现可以让您实现模式背后的动机。
如果以下任何陈述适用于您的情况,请考虑使用抽象类:
如果以下任何陈述适用于您的情况,请考虑使用接口:
在某些实现中,对于工厂创建的产品使用抽象类而不是接口可能更有意义。如果所有产品之间存在共享的功能/行为集,那么将它们放入抽象基类中确实有意义。即使产品是由不同工厂制造的,这也适用。
归结为:您是否希望引入耦合以及引入耦合是否有意义
产品之间是否?
最终,客户将得到相同的结果——根据规范构建产品,并抽象出构造细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)