一、姑且用一个这样的图表示一下:
二、简单工厂的基本简介:百度释义:又叫静态工厂方法,不属于那23种设计模式之一。
动态决定哪个类被实例化,不必事先知道哪个类要被实例化!
三、举例:QQ里面常用发表情的:
1、 表情 b=new Smile();//这种应该是很熟悉的创建方式
2、表情 b=表情工厂.createBiaoQing(“表情内容”);
四、角色与结构:
工厂类角色(creator):BQFctory,在creat方法下创建产品对象(smile,cry);
抽象产品角色(product):BiaoQing;定义简单工厂创建的对象的父类或它们共同拥有的接口。可以是一个类、抽象 类或接口。(我这里是一个接口);
具体产品角色concreateproduct:Smile,Cry;工厂具体产出的对象。
五、根据代码分析:
BiaoQing接口,仅需定义所需要的方法
package SimpleFctory;
public interface BiaoQing {
public void show();
}
Smile类实现BiaoQing中的方法
package SimpleFctory;
public class Smile implements BiaoQing{
public void show() {
System.out.println("smile的显示方法");
}
}
Cry类实现BiaoQing中的方法
package SimpleFctory;
public class Cry implements BiaoQing{
public void show() {
System.out.println("cry的显示方法");
}
}
BQFctory的create方法的返回类型是BiaoQing,然后根据括号内的内容返回不同的类型
package SimpleFctory;
public class BQFctory {
public static BiaoQing create(String type){//为了方便调用,我们在这里将其方法设为公开静态的
if(type.equals("smile")){//根据创建方法后的类型来判断需要返回什么类型
return new Smile();
}else if(type.equals("cry")){
return new Cry();
}else
return null;
}
}
测试:
package SimpleFctory;
public class Test {
public static void main(String[] args) {
BiaoQing b1=BQFctory.create("smile");
b1.show();
BiaoQing b2=BQFctory.create("cry");
b2.show();
}
}
结果:smile的显示方法
cry的显示方法
我们反过来,从主程序开始看就很好理解了,首先调用BQFctory里的静态方法create,根据方法提供的type返回所需要的类型,然后调用相应的方法!
六、优点:
1、不必事先知道哪个类要被实例化
2、只需在需要的地方调用即可,无需像 “ 表情 b=new Smile() "这样重新实例化一个对象,方便,同时也节省了内存!
七、缺点:
1、由于所需要的具体产品待定,如果很多的话就要重新添加新的类,并且要在工厂类(此例中的BQFctory类)中添加判断语句,扩展比较麻烦,好像违背了OOP的开闭原则吧!所以最好是用在所需创建的对象比较少的情形上!
就这么点理解了!
- 大小: 5.8 KB
- 大小: 4.5 KB
分享到:
相关推荐
JAVA-设计模式-创建型模式-工厂模式
创建型设计模式----抽象工厂模式
创建型设计模式---工厂设计模式实现
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
C++设计模式-创建型模式-简单工厂模式源码
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
软件设计模式-2021秋-实验1-创建型模式实验报告附源码和类图.zip 工厂方法模式、建造者模式、抽象工厂模式、单例模式
最新设计模式超级详解课程,课程深入浅出的探讨了设计模式总览,创建型模式、结构型模式、行为模式的...├─day01-总览设计模式-06-创建型模式-工厂-简单工厂模式.mp4 ├─day01-总览设计模式-07-创建型模式-工厂-工厂
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
c++设计模式-创建型-抽象工厂方法-最简单源码-qt工程
设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...
3.2 Builder(生成器)—对象创建型模式 633.3 Factory Method(工厂方法)—对象创建型模式 70 3.4 Prototype(原型)—对象创建型模式 87 3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4...
│ 4.2电商支付应用案例-简单工厂模式实践指南.mp4 │ 5.1-创建型设计模式-Prototype原型设计模式实战《上》.mp4 │ 5.2-创建型设计模式-Prototype原型设计模式实战《下》.mp4 │ 6.1-接口之间的桥梁-适配器设计...
设计模式_创建型_工厂方法模式
①使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形均具有绘制方法daw()和擦除方法 erase(),要求在绘制不支持的几何...
简单工厂模式(不属于23种设计模式范围之内) 用意:一个工厂生产所有产品
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...
介绍了三种创建型设计模式:简单工厂模式、工厂方法模式、抽象工厂模式;
抽象工厂模式是一种创建型设计模式,它的主要目标是提供一个接口或抽象类,用于创建一系列相关或依赖的对象。该模式的主要优点在于,它可以为客户端代码提供一个统一的接口,使得客户端无需关心具体实现细节。抽象...