抽象工厂模式(Abstract Factory Pattern)
来源:互联网 发布:腾讯视频会员破解软件 编辑:程序博客网 时间:2024/06/11 03:03
抽象工厂模式定义:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类
其实和策略模式还是蛮像的,只不过现在抽象分离出去的不是一个普通类,而是一个工厂类,并且工厂类依赖于多个抽象类(比如:酱料和火腿)
public class Store {private AbstractSourceFactory factory;public Store(AbstractSourceFactory factory){this.factory = factory;}public void getSource(){factory.sendSauce();factory.sendHam();}}
public abstract class AbstractSourceFactory {public abstract Sauce sendSauce();public abstract Ham sendHam();}
public class NYSourceFactory extends AbstractSourceFactory {public Sauce sendSauce() {return new TomatoSauce();}public Ham sendHam() {return new OriginalHam();}}
public class CHSourceFactory extends AbstractSourceFactory {public Sauce sendSauce() {return new StrawBerrySauce();}public Ham sendHam() {return new BakeHam();}}
public class Ham {protected String des;protected String getDes(){return this.des;}}
public class OriginalHam extends Ham {public OriginalHam(){System.out.println("OriginalHam");}}
public class BakeHam extends Ham {public BakeHam(){System.out.println("BakeHam");}}
public class Sauce {protected String des;protected String getDes(){return this.des;}}
public class StrawBerrySauce extends Sauce {public StrawBerrySauce(){System.out.println("StrawBerrySauce");}}
public class TomatoSauce extends Sauce {public TomatoSauce(){System.out.println("TomatoSauce");}}
ps:
缺点比较明显,当工厂方法中需要加上一类抽象或者移除一类抽象的时候(比如移除Hum),需要修改所有的具体工厂
但是考虑到抽象工厂方法通常用来创建一个产品家族(原料),比如,制作眼镜的原料一般是固定的(google眼镜除外),除非有创新,否则常年不会变,这时候使用抽象工厂方法就没有上面的扩展性问题,一定范围内不会变的东西不需要太考虑其扩展性
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式 Abstract Factory Pattern
- 抽象工厂模式(abstract factory pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式 The Abstract Factory Pattern
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern )
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern)小结
- 05.抽象工厂模式【ABSTRACT FACTORY PATTERN】
- 抽象工厂模式-Abstract Factory Pattern
- 抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式 Abstract Factory Pattern
- 抽象工厂模式(Abstract Factory Pattern)
- 测试中的问题
- spring @Resource
- 无法搜索windows xp的搜索文件内容的解决办法
- 答辩总结
- 游戏设计师需知的10个用户真相
- 抽象工厂模式(Abstract Factory Pattern)
- 动画隐藏Navbar【上滑推动Navbar至消失,下滑至完全出现Navbar的】
- android上面,会遇到no such file or dir
- redis服务端命令之Linux操作系统
- C# 几十万级数据导出Excel,及Excel各种操作
- 平时应该注意的几项
- 去处tableview的背景
- ASP.NET刷新页面的六种方法(转)
- eclipse debug 快捷键