工厂模式
来源:互联网 发布:中国网络歌曲 编辑:程序博客网 时间:2024/06/17 02:17
分类:简单工厂模式、工厂方法模式、抽象工厂模式
简单工厂模式包括:一个具体的工厂类,一个抽象的产品类,多个具体的产品类。
工厂方法模式:一个抽象的工厂类,多个具体的工厂类,一个抽象的产品类,多个具体的产品类。
抽象工厂模式:一个抽象的工厂类,多个具体的工厂类,多个抽象的产品类,多个具体的产品类。
简单工厂模式又被成为静态工厂方法模式,是它的一个特例。
工厂方法模式代码示例如下:
public class Main { public Main() { // TODO Auto-generated constructor stub } public static void main(String[] args){ Car bmw = new BMWFactory().create(); Car benzi = new BenziFactory().create(); }}abstract class Car{}class BMW extends Car{ public BMW(){ System.out.println("生产一辆:BMW"); }}class Benzi extends Car{ public Benzi(){ System.out.println("生产一辆:Benzi"); }}interface Factory{ public Car create();}class BMWFactory implements Factory{ @Override public Car create() { return new BMW(); }}class BenziFactory implements Factory{ @Override public Car create() { return new Benzi(); }}
抽象工厂模式示例代码如下:
public class Main2 { public Main2() { // TODO Auto-generated constructor stub } public static void main(String[] args){ Factory bmwFactory = new BMWFactory(); Factory benziFactory = new BenziFactory(); Condition conditionA = bmwFactory.createCondition(); Engine EngineA = bmwFactory.createEngine(); Condition conditionB = benziFactory.createCondition(); Engine EngineB = benziFactory.createEngine(); }}abstract class Condition{}class ConditionA extends Condition{ public ConditionA(){ System.out.println("生产A型号的空调"); }}class ConditionB extends Condition{ public ConditionB(){ System.out.println("生产B型号的空调"); }}abstract class Engine{}class EngineA extends Engine{ public EngineA(){ System.out.println("生产A型号的引擎"); }}class EngineB extends Engine{ public EngineB(){ System.out.println("生产B型号的引擎"); }}interface Factory{ public Condition createCondition(); public Engine createEngine();}class BMWFactory implements Factory{ @Override public Condition createCondition() { return new ConditionA(); } @Override public Engine createEngine() { return new EngineA(); }}class BenziFactory implements Factory{ @Override public Condition createCondition() { return new ConditionB(); } @Override public Engine createEngine() { return new EngineB(); }}
工厂方法模式和抽象工厂模式区别:
1、工厂方法模式每个具体的工厂类生产具体的产品示例,
抽象工厂模式每个具体的工厂类可以生产多个具体的产品示例。
2、工厂方法模式有一个抽象的产品类,抽象工厂模式可以有多个。
适用范围:工厂模式的目的就是为了解耦,当遇到复杂的情况时,
工厂方法模式就转化抽象工厂模式。
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 51nod oj 1107 斜率小于0的连线数量 【类逆序数】
- 三级联动
- 数组作为函数的参数
- php更新数据库的数据
- Android Studio 中Project栏的各项大体作用.
- 工厂模式
- FHS
- linux系统打开路由转发功能
- jstl 多个判断条件正确的写法
- 泛型与原生态类型
- 2098--拆分素数和
- 查找子串出现的次数
- springMVC文件上传,判断是否有文件上传,解决没有文件上传时的出现异常的问题
- 蜕变历程(1)