工厂模式之抽象工厂模式
来源:互联网 发布:spark submit python 编辑:程序博客网 时间:2024/06/06 11:01
抽象工厂模式:
1>首先有男孩女孩:
package com.zy.factoryProject;/** * 男孩 * * @author Administrator * */public interface Boy {public void drawMan();}
package com.zy.factoryProject;/** * 女孩 * * @author Administrator * */public interface Girl {public void drawWomen();}
2>当各种节日来了就会有不同系列的男孩女孩,以圣诞节和新年系列为例:( 分别继承Boy和Girl接口)
package com.zy.factoryProject;/** * 圣诞系列的男孩子 * @author Administrator * */public class MCBoy implements Boy {@Overridepublic void drawMan() {System.out.println("---圣诞系列的男孩子---");}}
package com.zy.factoryProject;/** * 圣诞系列的女孩子 * * @author Administrator * */public class MCGirl implements Girl {@Overridepublic void drawWomen() {System.out.println("---圣诞系列的女孩子---");}}
package com.zy.factoryProject;/** * 新年系列的男孩子 * * @author Administrator * */public class HNBoy implements Boy {@Overridepublic void drawMan() {System.out.println("---新年系列的男孩子---");}}
package com.zy.factoryProject;/** * 新年系列的女孩子 * * @author Administrator * */public class HNGirl implements Girl {@Overridepublic void drawWomen() {System.out.println("新年系列的女孩子");}}
*现在创建好了节日系列的男孩女孩人物,需要创建一个工厂,提供给外界调用
1>人物创建工厂:(PersonFactory.java)
package com.zy.factoryProject;public interface PersonFactory {// 男孩接口public Boy getBoy();// 女孩接口public Girl getGirl();}
2>节日系列人物创建工厂,继承自人物创建工厂:(MCFactory.java)
package com.zy.factoryProject;/** * 圣诞系列加工厂 * * @author Administrator * */public class MCFactory implements PersonFactory {@Overridepublic Boy getBoy() {return new MCBoy();}@Overridepublic Girl getGirl() {return new MCGirl();}}
package com.zy.factoryProject;/** * 新年系列加工厂 * * @author Administrator * */public class HNFactory implements PersonFactory {@Overridepublic Boy getBoy() {return new HNBoy();}@Overridepublic Girl getGirl() {return new HNGirl();}}
3>客户端调用测试:
PersonFactory pf = new MCFactory();Girl girl = pf.getGirl();girl.drawWomen();
工厂方法模式和抽象工厂模式的对比:
1>工厂方法模式是一种极端情况的抽象工厂模式,而抽象工厂模式可以看成 是工厂模式的推广
2>工厂方法模式用来创建一个产品的等级结构,而抽象工厂模式是用来创 建多个产品的等级结构
3>工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个抽象产品类
工厂模式常见的应用:
JDBC:
对各种数据库提供统一的访问接口,客户端决定需要那种数据库就由数据 操作工厂生产对应的数据连接.
0 0
- 工厂模式之抽象工厂模式
- 工厂模式之抽象工厂模式
- 工厂模式之抽象工厂模式
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- C++设计模式之简单工厂、工厂模式、抽象工厂
- 工厂三兄弟之抽象工厂模式
- 工厂三兄弟之抽象工厂模式
- 工厂三兄弟之抽象工厂模式
- 工厂三兄弟之抽象工厂模式
- php之工厂模式和抽象工厂
- Java工厂模式之抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 内存优化,OOM异常处理
- OpenLayers3入门篇-点的扩散效果
- 深入剖析Android音频之AudioTrack
- linux下安装protobuf教程+示例(详细)
- poj 3678 Labeling Balls
- 工厂模式之抽象工厂模式
- xmlpullparser之skip(parser)
- 【POJ】2965 - The Pilots Brothers' refrigerator(dfs & 双端队列 & 思维)
- Android View绘制流程
- web.xml
- 几种协议比较(二)
- 实现单向循环链表的创建、测长、打印、插入、删除及逆置
- Akka actor
- 使用Privoxy将socks5代理转为http代理