我对这个概念感到困惑?它是否像结合静态方法返回对象而不是构造函数一样简单?因此,客户在更新库时不需要更改代码,或者还有更多内容吗?
答案 0 :(得分:0)
本书Head First Design Patterns将成为您的Java权威指南。那是一本好书。如果您查看我对此Stack Overflow Question的回答,您将能够在使用ArbitraryPointFactory的Point Example代码中看到Factory Method pattern课程的实施情况以及如何它与Abstract Factory pattern类中的Point Factory不同。虽然这个答案是用C#代码示例呈现的,但我用来描述其用法的设计模式语言应该保证给你一个答案。
你在问题中想到的不是设计模式。这个静态方法返回一个对象来封装实例化,在Wiki页面中可以看作是Simple Factory。 Factory Method
模式或多或少地抽象了通过接口返回的类型。这通常是在factory method
类的唯一作业是控制实现返回接口的一个concrete
类的对象的创建的情况下完成的。 Abstract Factory
为一组相关产品提供封装。在我的示例中,我展示了不同类型的点,但是它们可以实现不同的接口,并且都使用相同的Abstract Factory
。
这个想法是你编程接口,而不是实现。真正的工厂将创建逻辑拉到应用程序中的单个位置,并通过接口封装实例化。