设计模式学习(JAVA)-工厂模式学习

设计模式学习(JAVA)-工厂模式学习

简单工厂模式

简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例

简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为

工厂方法模式

定义一个创建对象的抽象方法,由子类决定要实例化的对象,将对象实例化推迟到子类

抽象工厂模式

定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类。将工厂抽象成两层,(抽象工厂)和(具体实现的工厂子类)。程序员根据创建对象类型使用对应的工厂子类。便于代码的维护和扩展

难点:工厂方法模式和抽象工厂模式区别

举个例子说明下:

用种蔬菜的例子来说明事实,最初的时候,由于规模小,只种植一种蔬菜,根菜类蔬菜,这个时候由于种植方式比较简单,采用简单工厂模式即可,主要目的是让工人轻松,下达工厂种植即可,但是随着种植厂的发展以及市场的需求,要增加一种蔬菜类型种植了,茎菜,由于茎菜与根菜种植方式不一致,就需要两个专门的种植工厂来进行管理,那么久采用工厂模式来管理,一个工厂负责一种作物的种植,这个时候产品可以理解为仍然在一个层次。但是随着科技的发展,我们逐步要种植转基因与非转基因食品了,在以前的蔬菜种类上又增加了一个层次,这个时候无法将其作为一个层次来解决,所以必须采用抽象工厂的方式来解决。我用UML图表示三种结构:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述 上面的UML图很明显的就看出来了,抽象工厂可以创建多个产品类对象,如在种菜工厂中,有种根菜,种茎菜。工厂模式与抽象工厂模式以及简单工厂模式只有在具体应用的时候,分析具体的产品层级,然后选择相应的设计模式。
而在没一个层次,种菜工人所关心的对象也不一样,在简单工厂模式下,工人要想到种植萝卜还是白菜,在工厂模式下,工人想到是种植根菜还是茎菜,而在抽象工厂模式下,则关心种植基因菜还是非基因菜
转载自:https://blog.csdn.net/wyxhd2008/article/details/5597975

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章