任何可以产生对象的方法或类,都可以称之为工厂
单例也是一种工厂 getInstance(静态工厂)
不要咬文嚼字,死扣概念
为什么有了new之后,还要有工厂?
灵活控制生产过程
权限、修饰、日志
名词用抽象类 形容词用接口
初始化一个抽象工厂;
有多个工厂;每个工厂可以生成Food或者可移动的东西;
原始工厂和现代工厂 都为 抽象工厂的子类;
Food为一个抽象类;可移动的东西为一个接口
烤肉和面包都是Food的子类
恐龙和汽车都是Moveable的实现类
原始工厂中返回的是烤肉和恐龙
现代工厂中返回的是面包和汽车
这样扩展产品一族就很好扩展;
比如说 现在有一个未来工厂,需要生产营养液和飞船
只需要将营养液继承食物,飞船实现Moveable接口;
但是,如果想要扩展一个新的品类,就非常的困难。
有更好的办法解决这个办法吗?
答案是有的,那就是Spring的Bean工厂