设计模式之抽象工厂模式
来源:互联网 发布:mysql inner join 编辑:程序博客网 时间:2024/06/07 08:51
/** * 多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 * <p/> * 一个抽象工厂类,可以派生出多个具体工厂类。 * <p/> * 每个具体工厂类可以创建多个具体产品类的实例。 * <p/> */public class AbstractFactory {public AbstractFactory() {Driver driver = new BenzDriver();Car car = driver.getSportsCar();car.drive();}/** * 产品接口 */interface Car {public void drive();}/** * 产品接口 */interface Benz extends Car {}/** * 产品接口 */interface Bmw extends Car {}/** * 具体产品 */class BussinessBenz implements Benz {@Overridepublic void drive() {System.out.println("drive BussinessBenz");}}/** * 具体产品 */class SportsBenz implements Benz {@Overridepublic void drive() {System.out.println("drive SportsBenz");}}/** * 具体产品 */class BussinessBmw implements Bmw {@Overridepublic void drive() {System.out.println("drive BussinessBmw");}}/** * 具体产品 */class SportsBmw implements Bmw {@Overridepublic void drive() {System.out.println("drive SportsBmw");}}/** * 抽象工厂方法 */interface Driver {public Car getBussinessCar();public Car getSportsCar();}/** * 具体工厂方法 */class BenzDriver implements Driver {@Overridepublic Car getBussinessCar() {return new BussinessBenz();}@Overridepublic Car getSportsCar() {return new SportsBenz();}}/** * 具体工厂方法 */class BmwDriver implements Driver {@Overridepublic Car getBussinessCar() {return new BussinessBmw();}@Overridepublic Car getSportsCar() {return new SportsBmw();}}}
0 0
- 设计模式之抽象工厂
- 设计模式 之 抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之-抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式 之 抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 设计模式之抽象工厂
- 遍历技巧:2,3,4sum&3sum closest&set matrix zeroes&Container With Most Water
- ubuntu下安装交叉编译工具链的方法总结
- C#截取字符串(String.Substring方法)
- linux下批量替换文件内容
- iOS Application Life Cycle 应用程序生命周期
- 设计模式之抽象工厂模式
- 微信平台开发相关的问题记录
- Centos6.5下搭建Tomcat
- 面试会遇到的正则--去除掉js代码,或是html中代码
- ELKStack读取网络数据
- AFNetworking 3.0迁移指南
- ReactiveCocoa进阶篇
- Linux时间戳和标准时间的互转-zz
- C++ 用libcurl库进行http通讯网络编程