创建模式之工厂模式二
来源:互联网 发布:手机如何开淘宝店铺 编辑:程序博客网 时间:2024/05/18 03:32
上面已经介绍了简单工厂,也介绍了简单工厂的缺点,接下来介绍的是工厂方法
package com.djk.design.factory.factorymethod;public class Client{public static void main(String[] args) {AbstractFactory factory = new CarFactory();say(factory);factory = new BusFactory();say(factory);}public static void say(AbstractFactory factory){if (null == factory){return ;}Product product = factory.createProduct();if (null == product){return ;}product.say();}}
package com.djk.design.factory.factorymethod;public interface AbstractFactory {Product createProduct();}
package com.djk.design.factory.factorymethod;public class CarFactory implements AbstractFactory{@Overridepublic Product createProduct(){return new Car();}}
package com.djk.design.factory.factorymethod;public class CarFactory implements AbstractFactory{@Overridepublic Product createProduct(){return new Car();}}
package com.djk.design.factory.factorymethod;public class CarFactory implements AbstractFactory{@Overridepublic Product createProduct(){return new Car();}}
package com.djk.design.factory.factorymethod;public class CarFactory implements AbstractFactory{@Overridepublic Product createProduct(){return new Car();}}
package com.djk.design.factory.factorymethod;public class Bus implements Product{@Overridepublic void say(){System.out.println("i am a bus");}}
从工厂方法列子可以看出,我们抽象出来了工厂类,具体的产品延时到了抽象工厂类的子类中去创建了,后续如果增加了同一类型的产品,则只需要提供一个抽象工厂的实现类即可。
0 0
- 创建模式之工厂模式二
- 设计模式学习之创建模式之抽象工厂(二)
- 创建型模式之二——工厂方法模式
- 创建型:设计模式之抽象工厂模式(二)
- 设计模式 创建模式之工厂模式
- 二:创建型模式:抽象工厂模式
- (二)创建型模式--工厂模式
- 创建模式之二:工厂方法(Factory Method)
- 设计模式之工厂模式(二)之工厂方法模式
- 工厂模式之创建Computer
- 创建对象之-工厂模式
- 创建型之工厂模式
- 设计模式之---创建型模式(二)--抽象工厂模式 (Abstract Factory)
- 设计模式之 工厂模式(二) 抽象工厂模式
- Java之二:工厂模式
- 创建模式之Factory(工厂模式)
- 创建型模式之简单工厂模式
- 创建型模式之工厂方法模式
- 贴片电阻(功率)
- ReportStudio进阶教程(六) - 求交叉表指定维度的和
- 分布式搜索Elasticsearch——创建客户端(三)
- NGUI动态创建UILabel
- 【LeetCode】-Best Time to Buy and Sell Stock
- 创建模式之工厂模式二
- Java计算两日期之间的天数
- iOS 之awakeFromNib 和 viewDidLoad的区别
- MTK_android_如何预置APK(整合MTK回复)
- Cocos2d-x教程(4)-创建动画效果,TexturePacker工具
- Linux命令之basename使用
- C++:利用两个栈实现队列操作
- Web设计原则
- Android 正则表达式开发中常用方法整理