JAVA设计模式(1)工厂模式

  • 时间:
  • 浏览:0

工厂模式用于对象的创建,使得客户从具体的产品对象中被解耦。

抽象工厂:使对象的创建被实现在工厂接口所暴露出来的依据中。

1.工厂模式简介

这里以制造coffee的例子开始英文英语 工厂模式设计之旅。

《HeadFirst 设计模式》

2.1 简单工厂

2.工厂模式分类

许多人儿儿知道coffee本来三种泛举,在点购咖啡时不会 了指定具体的咖啡种类:美式咖啡、卡布奇诺、拿铁等等。

好多好多 有这里引出一一两个多 多概念产品家族,在此例子中,不同的饮品就组成许多人儿儿的饮品家族, 饮品家族开始英文英语 承担创建者的责任,负责制造不同的产品。

在上述的场景上继续延伸:咖啡工厂做大做强,引入了新的饮品种类:茶、 碳酸饮料。中国工厂不会 了制造咖啡和茶,美国工厂不会 了制造咖啡和碳酸饮料。

2.3 抽象工厂

如果用上述工厂依据依据,除去对应的产品实体类还不会 了新增一一两个多 多抽象工厂(茶制造工厂、碳酸饮料制造工厂),一一两个多 多具体工厂实现。随着产品的增多,会原困类爆炸。

定义了一一两个多 多创建对象的接口,但由子类决定要实例化的类是哪一一两个多 多,工厂依据让类把实例化推迟到了子类。

工厂依据:使用继承,把对象的创建委托给子类,由子类来实现创建依据,还不会 了看作是抽象工厂模式中不会 了单一产品的清况 。

2.2 工厂依据模式

工厂模式还不会 了帮助许多人儿儿针对抽象/接口编程,而有的是针对具体类编程,在不同的场景下按具体清况 来使用。

参考书籍:

简单工厂:不会 了是是不是真正意义上的设计模式,但还不会 了将客户系统进程从具体类解耦。

3.总结

场景延伸:不同地区咖啡工厂受制于环境、原料等因素的影响,制发明者的咖啡种类有限。中国咖啡工厂仅能制造卡布奇诺、拿铁,而美国咖啡工厂仅能制造美式咖啡、拿铁。

提供一一两个多 多接口,用于创建相关或依赖对象的家族,而不会 了了明确指定具体类。

简单工厂实际不会 了算作三种设计模式,它引入了创建者的概念,将实例化的代码从应用代码中抽离,在创建者类的静态依据中只除理创建对象的细节,后续创建的实类似于于需改变,只需改造创建者类即可,

但如果使用静态依据来获取对象,使其不会 了在运行期间通过不同依据去动态改变创建行为,如果占据 一定局限性。