工厂和原型都有助于创建对象。在设计新应用程序时:
我很困惑该在哪里使用哪一种。
我知道这可能是非常具体的问题,但有没有一般的指导方针?
有什么想法?
发布于 2013-11-18 08:53:13
我将假设您在讨论抽象工厂设计模式(不应与Factory方法混淆,后者是另一种创造性设计模式)。
两者之间的区别并不太明显,因为它们可以重叠并以互补的方式使用。由于原型创建了一个自身的克隆,包括其所有属性,它通常由一个抽象工厂创建一次,然后为每个必需的对象克隆(这将不需要再次填充它的字段)。
因此,Prototype避免了不必要的“新”调用,因为对象是克隆的,而不是创建的。然而,在大多数现代OOP语言中,我不会说这是件大事。我的两分钱:如果你没有看到真正的区别,就继续使用你习惯实现的那个(可能是抽象工厂)。
发布于 2013-11-18 14:18:34
在我看来,虽然两者都是创造模式,但工厂模式和原型模式在不同的上下文中使用。
工厂模式用于引入对象之间的松散耦合,因为工厂将处理所有对客户端隐藏的实例化逻辑。
另一方面,当创建对象的成本很大时,可以复制现有实例而不是创建新实例时使用Prototype模式。
发布于 2013-11-18 09:13:39
Prototype被认为是一种优化工厂(复制而不是创建)或执行依赖注入(为特定实现/配置配置工厂)的方法。
https://stackoverflow.com/questions/20043279
复制相似问题