设计模式(三)——抽象工厂模式
来源:互联网 发布:动态称重算法 编辑:程序博客网 时间:2024/06/02 04:01
抽象工厂方法是工厂方法的泛化版,工厂方法是一种特殊的抽象工厂方法。抽象工厂方法中,一个具体的工厂可以生产多个具体的产品。
抽象工厂方法同样包含四个角色:抽象工厂,具体工厂,抽象产品,具体产品。
//抽象产品public interface Television { public void play();}//具体产品public class HaierTelevision implements Television{ @Override public void play() { // TODO Auto-generated method stub System.out.println("海尔电视机播放中"); }}public class TCLTelevision implements Television { @Override public void play() { // TODO Auto-generated method stub System.out.println("TCL电视播放中"); }}//抽象产品public interface AirCondition { public void changeTemperature();}//具体产品public class HaierCondition implements AirCondition { @Override public void changeTemperature() { // TODO Auto-generated method stub System.out.println("海尔空调改变温度中"); }}public class TCLAirCondition implements AirCondition { @Override public void changeTemperature() { // TODO Auto-generated method stub System.out.println("TCL空调改变温度中"); }}//抽象工厂public interface EFactory { public Television produceTelevision(); public AirCondition produceAirCondition();}//具体工厂public class HaierFactory implements EFactory { @Override public Television produceTelevision() { // TODO Auto-generated method stub return new HaierTelevision(); } @Override public AirCondition produceAirCondition() { // TODO Auto-generated method stub return new HaierCondition(); }}public class TCLFactory implements EFactory { @Override public Television produceTelevision() { // TODO Auto-generated method stub return new TCLTelevision(); } @Override public AirCondition produceAirCondition() { // TODO Auto-generated method stub return new TCLAirCondition(); }}
抽象工厂模式的优点:
(1)当一个产品族中多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象,这对需要根据当前环境来决定其行为的软件系统来说很实用。
(2)工厂方法的优点,它都有。
抽象工厂模式的缺点:
(1)抽象工厂无法被扩展。
0 0
- 设计模式(三)——抽象工厂模式
- 设计模式(三)---抽象工厂模式
- 设计模式(三)--抽象工厂模式
- 设计模式(三)---抽象工厂模式
- 设计模式(三)抽象工厂模式
- JAVA设计模式(三)——抽象工厂模式
- 工厂设计模式(三)--抽象工厂模式
- 设计模式—抽象工厂(十一)
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- CSS3--渐变
- 杂记
- linux 常用命令学习 笔记
- MVVM MVC MVP到底是什么
- Hibernate的集中查询方式 : hql查询,QBC查询和QBE查询
- 设计模式(三)——抽象工厂模式
- Android studio 报错:Error:Error: Expected resource of type drawable [ResourceType]
- DataBinding与MVVM(含代码)
- EJB小结
- Android代码的书写规范
- (HDU 5727)Necklace <二部图匹配,匈牙利算法> 多校训练1
- [bigdata-024] 在centos 6.5上手工安装mongodb 3.2.5
- Javascript与Jquery知识点
- 杰瑞·卡普兰:不要期望AlphaGo有人类意识,但需要它像人一样完成任务