OhD*_*ear 6 design-patterns factory
Factory和Prototype都有助于创建对象.在设计新应用程序时:
我很困惑哪一个用在哪里.
我知道它可能是非常具体的问题但是有没有一般的指导方针?
思考?
我假设您正在谈论抽象工厂设计模式(不应该与工厂方法混淆,后者是另一种创建设计模式).
两者之间的差异并不太明显,因为它们可以重叠并以互补的方式使用.由于原型创建了自身的克隆,包括其所有属性,它通常只由一个抽象工厂创建一次,然后克隆每个必需的对象(不需要再次填充其字段).
因此,Prototype避免了不必要的"新"调用,因为对象被克隆而不是被创建.然而,在大多数现代OOP语言中,我不会说它是如此重要.我的两分钱:如果你没有真正看到差异,那就继续使用你习惯实施的那个(也就是抽象工厂).
在我看来,虽然两者都是创建模式,但工厂模式和原型模式在不同的上下文中使用。
工厂模式用于在对象之间引入松散耦合,因为工厂将处理对客户端隐藏它的所有实例化逻辑。
另一方面,当创建对象的成本很大并且可以复制现有实例而不是创建新实例时,则使用原型模式。
嗯,我想的是,
在工厂方法中,我们返回我们感兴趣的类型的新实例,如原型中相关子类使用克隆方法返回其自身的实例
更具体 工厂方法的创建是通过继承进行的,而原型创建是通过委托进行的,即多态性进行的。
在我看来,
每当您认为需要类的重复状态或具有预设状态的对象的克隆时,您就需要使用原型。