看源码之前要做的操作: www.jianshu.com/p/bf0cd5f46…
三种工厂模式的区别: www.cnblogs.com/weibanggang…

【工厂模式】 定义:一个用于创建对象的接口,让子类决定实例化哪个类。分为简单工厂模式、普通工厂模式和抽象工厂模式
#注:普通工厂模式
①只有一个抽象工厂类
②可有多个具体工厂类(每个具体工厂类只可派生出一个具体产品类的实例)
③只有一个抽象产品类
④可有多个具体产品类
抽象工厂:Collection————Iterator iterator();
具体工厂①:ArrayList extends Collection————public Iterator iterator() {return new Itr(); }
具体工厂②:LinkList extends Collection————public Iterator iterator() {return new Itr(); }
抽象产品:Iterator————boolean hasNext();
具体产品①:class Itr implements Iterator————public boolean hasNext() { return cursor < limit; }
具体产品②:class DescendingIterator implements Iterator————public boolean hasNext() { return this.nextIndex < LinkedList.this.size; }
#注:简单工厂模式(又叫静态工厂方法模式,因为其工厂类的创建方法为静态方法)
①只有一个工厂类(不是抽象的也不是接口,只是用于生成不同的产品)
②只有一个抽象产品类
③可有多个具体产品类
适用环境:适用于生成复杂对象时,确定只有一个工厂类,可以使用简单工厂模式
#注:抽象工厂模式
①只有一个抽象工厂类
②可有多个具体工厂类
③可有多个抽象产品类
④可有多个具体产品类
适用环境:适用于多种不一样产品 →参考:www.jianshu.com/p/3e912410f…