工厂模式
来源:互联网 发布:程序员一天工作几小时 编辑:程序博客网 时间:2024/06/05 19:34
工厂模式:
工厂模式是对简单工厂模式的进一步抽象。工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
工厂模式组成:
1、抽象工厂类:具体工厂类需要实现的接口或抽象类。
2、具体工厂类:实现或继承自抽象工厂类,用于生产具体的产品类。
3、抽闲产品类:具体产品需要实现的接口或抽象类。
4、具体产品类:被具体工厂类创建对象,客户端实际操作对象。
具体工厂实现抽象工厂,具体产品实现抽象产品;具体工厂创建具体产品对象。
以生产车辆工厂为例:
##抽象产品类interface ICar { public void BuyCar();}#具体产品类public class Bwm implements ICar{ @Override public void BuyCar(){ System.out.println("买宝马车."); }}public class buick implements ICar { @Override public void BuyCar(){ System.out.println("买别克车."); }}##抽象工厂类public interface IFactory { public ICar CreateCar();}#具体工厂类public class bmwFactory implements IFactory{ @Override public ICar CreateCar(){ return new Bwm(); }}public class buickFactory implements IFactory{ @Override public ICar CreateCar(){ return new buick(); }}#客户端public class Main { public static void main(String[] args) { // TODO Auto-generated method stub IFactory factory = new bmwFactory(); ICar bwm = factory.CreateCar(); bwm.BuyCar(); factory = new buickFactory(); ICar buick = factory.CreateCar(); buick.BuyCar(); }}
uml图:
分析:
工厂模式对简单工厂模式进一步对了抽象,简单工厂的工厂类中生产产品,改为了在工厂模式的工厂接口的子类中生产产品。工厂模式完全符合“开放-封闭原则”。同时,工厂模式把简单工厂的内部逻辑判断移到了客户端进行,若想在工厂模式增加功能,本在是改工厂类的,现在在工厂模式改客户端了。
阅读全文
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 设计模式之享元模式
- lintcode 整数排序 II | 快速排序(Java)
- web 学习笔记12-JSP技术
- 【剑指offer】用两个栈实现队列
- Exception in thread “main” java.lang.UnsupportedClassVersionError: com/crunchify/Main : Unsupported
- 工厂模式
- 代码之髓读后感——关于学习
- 链表(单向、双向、单向循环、双向循环)学习过程总结——有源代码、注释和示意图
- spring boot中spring.profiles.active的用法
- Mybatis整理
- springMVC 多图片多name上传
- SpringMVC WebSocket Apache代理 相关技术点总结
- 博客迁移通知
- Add Strings