java 设计模式之工厂模式

首先,工厂模式设计出来的作用就是为了不让客户看到产品的生产过程,只是最后拿到产品即可

 

本篇就军队生产过程为例,解释一下三种:简单工厂,工厂模式,抽象工厂;

 

1.简单工厂:

//1工厂类角色这是本模式的核心,含有一定的商业逻辑和判断逻辑,在爪哇中它往往由一个具体类实现

//2抽象产品角色:它一般是具体产品继承的父类或者实现的接口.在爪哇中由接口或者抽象类来实现。

//3.具体产品角色工厂类所创建的对象就是此角色的实例,在爪哇中由一个具体类实现
重要点 :   一个抽象产品类,多个具体产品类;   只有一个工厂类,而且是具体工厂类

java 设计模式之工厂模式_第1张图片

java 设计模式之工厂模式_第2张图片

 

2.工厂模式

//1抽象工厂类角色:这是本模式的核心,是具体工厂必须继承的接口或者继承的父类,在爪哇中由接口或者抽象类来实现

//2具体工厂类角色:含有一定的商业逻辑和判断逻辑,用以创建对应的具体产品对象,在爪哇中它往往由一个具体类实现

//3抽象产品角色:它一般是具体产品继承的父类或者实现的接口.在爪哇中由接口或者抽象类来实现。

//4.具体产品角色 :工厂类所创建的对象就是此角色的实例,在爪哇中由一个具体类实现


//重要点:
//一个抽象工厂类,衍生出多个具体工厂类   ;
//只有一个抽象产品类,衍生出多个具体产品类
//一个具体工厂对应只能生产一个具体产品类

java 设计模式之工厂模式_第3张图片

java 设计模式之工厂模式_第4张图片

 

三.抽象工厂

     抽象工厂和工厂模式不同的是,工厂模式无法去增加更多的产品大类(因为工厂模式中,每个具体工厂类只生产一个具体产品类,且只有一个抽象大的产品类,在本例体现就是:我不仅生产解放军,我还想生产新四军,那么这时候只有一个大抽象类是不够的的,还要加一个新四军抽象类) ; 而抽象工厂中,由于每个具体工厂能生产多个产品类(因为有多个抽象产品类);

从上述解释来看,抽象工厂其实就是工厂模式的衍生,因为包含了多个抽象产品类,能实现一个具体工厂实现多个产品类别;

 

//重要点:
//一个抽象工厂类,衍生出多个具体工厂类
//多个抽象产品类,衍生出多个具体产品类
//每个具体工厂类生产多个具体产品类

java 设计模式之工厂模式_第5张图片

 java 设计模式之工厂模式_第6张图片

java 设计模式之工厂模式_第7张图片

java 设计模式之工厂模式_第8张图片

 

你可能感兴趣的:(Java设计模式)