工厂模式学习笔记

143 阅读1分钟

看源码之前要做的操作: 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…