设计模式之 工厂系列

任何可以产生对象的方法或类,都可以称之为工厂
单例也是一种工厂 getInstance(静态工厂)

不要咬文嚼字,死扣概念

为什么有了new之后,还要有工厂?
灵活控制生产过程
权限、修饰、日志

名词用抽象类 形容词用接口

初始化一个抽象工厂;
有多个工厂;每个工厂可以生成Food或者可移动的东西;

原始工厂和现代工厂 都为 抽象工厂的子类;

Food为一个抽象类;可移动的东西为一个接口

烤肉和面包都是Food的子类
恐龙和汽车都是Moveable的实现类

原始工厂中返回的是烤肉和恐龙
现代工厂中返回的是面包和汽车

这样扩展产品一族就很好扩展;
比如说 现在有一个未来工厂,需要生产营养液和飞船

只需要将营养液继承食物,飞船实现Moveable接口;

但是,如果想要扩展一个新的品类,就非常的困难。


有更好的办法解决这个办法吗?
答案是有的,那就是Spring的Bean工厂

你可能感兴趣的:(设计模式之 工厂系列)