首先,工厂模式设计出来的作用就是为了不让客户看到产品的生产过程,只是最后拿到产品即可;
本篇就军队生产过程为例,解释一下三种:简单工厂,工厂模式,抽象工厂;
1.简单工厂:
//1工厂类角色这是本模式的核心,含有一定的商业逻辑和判断逻辑,在爪哇中它往往由一个具体类实现
//2抽象产品角色:它一般是具体产品继承的父类或者实现的接口.在爪哇中由接口或者抽象类来实现。
//3.具体产品角色工厂类所创建的对象就是此角色的实例,在爪哇中由一个具体类实现
重要点 : 一个抽象产品类,多个具体产品类; 只有一个工厂类,而且是具体工厂类
2.工厂模式
//1抽象工厂类角色:这是本模式的核心,是具体工厂必须继承的接口或者继承的父类,在爪哇中由接口或者抽象类来实现
//2具体工厂类角色:含有一定的商业逻辑和判断逻辑,用以创建对应的具体产品对象,在爪哇中它往往由一个具体类实现
//3抽象产品角色:它一般是具体产品继承的父类或者实现的接口.在爪哇中由接口或者抽象类来实现。
//4.具体产品角色 :工厂类所创建的对象就是此角色的实例,在爪哇中由一个具体类实现
//重要点:
//一个抽象工厂类,衍生出多个具体工厂类 ;
//只有一个抽象产品类,衍生出多个具体产品类
//一个具体工厂对应只能生产一个具体产品类
三.抽象工厂
抽象工厂和工厂模式不同的是,工厂模式无法去增加更多的产品大类(因为工厂模式中,每个具体工厂类只生产一个具体产品类,且只有一个抽象大的产品类,在本例体现就是:我不仅生产解放军,我还想生产新四军,那么这时候只有一个大抽象类是不够的的,还要加一个新四军抽象类) ; 而抽象工厂中,由于每个具体工厂能生产多个产品类(因为有多个抽象产品类);
从上述解释来看,抽象工厂其实就是工厂模式的衍生,因为包含了多个抽象产品类,能实现一个具体工厂实现多个产品类别;
//重要点:
//一个抽象工厂类,衍生出多个具体工厂类
//多个抽象产品类,衍生出多个具体产品类
//每个具体工厂类生产多个具体产品类