一、工厂模式
1、工厂模式的关键点就是如何描述好这两个角色之间的关系,分为四种情况:
(1)单一产品系,工厂生产一种类型的产品;
(2)多产品系,特征相同。工厂生产多种类型的产品;
(3)多产品系,部分特征相同;
(4)多产品系,无特征相同。
工厂模式一般分为简单工厂、工厂、抽象工厂3种情况,属于创建型设计模式。
2、简单工厂设计模式
(1)定制抽象产品接口;
(2)定制具体产品子类;
(3)定制工厂类,简单工厂类的特点:它是一个具体的类,非接口或抽象类。其中有一个重要的create()方法,利用if...else或switch开关创建所需产品,并返回。
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 |
|
[代码]java代码:
1 2 3 4 5 6 7 8 |
|
3、工厂模式
(1)定制抽象产品接口;
(2)定制具体产品子类;
(3)定制抽象工厂类(或接口),其中有一个重要的create()抽象方法;
(4)定制具体工厂子类。
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代码:
1 2 3 4 5 |
|
[代码]java代
01 02 03 04 05 06 07 08 09 10 |
|
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 |
|
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 |
|
[代码]java代码:
1 2 3 4 5 6 7 8 |
|
4、工厂与简单工厂模式的区别。
(1)工厂模式把简单工厂中具体的工厂类划分为两层:抽象工厂层+具体工厂子类层。抽象工厂层的划分丰富了程序框架的内涵,符合从一般到特殊的语义特点。
(2)create()方法参数的理解:在简单工厂中,create(String mark)是成员方法,表明在该方法中管理多个产品,根据mark的值产生并返回ICar对象;在工厂模式中,create()是抽象方法,无参数,表明在具体的子类工厂中创建某个具体的产品。
(3)工厂方法更易于软件的二次开发及维护,主要特征是:当需求分析变化时,只需要增加、删除相应的类,而不是修改已有的类。
5、抽象工厂
(1)定制抽象产品接口;
(2)定制具体产品类子类;
(3)定制抽象工厂类(或接口),其中有两个重要的create()抽象方法;
(4)定制具体工厂子类,每个工厂子类中重写create()方法。
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 |
|
[代码]java代码:
1 2 3 4 5 6 |
|
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
|
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
|
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
|