Ch4. The Factory Pattern
Head First Design Patterns
2014/04/24
vicall@Qlync Inc.
1
OO Principles - ch1~3
Encapsulate what varies.
Favor composition(合成) over inheritance(繼承)
Program to interface, not implementations.
Strive for loosely coupled designs between objects
that interact.
Classes should be open for extension but closed for
modification.
2
NOT Closed for Modification
3
–Ch3. The Decorator Pattern
“Open for Extension
Closed for Modification”
4
⼯工廠模式
所有⼯工廠都是⽤用來封裝物件的建⽴立。
所有的⼯工廠模式都提倡鬆綁,以便降低應⽤用程式和具
象類別之間的相依程度。
5
簡單⼯工廠
簡單⼯工廠,雖然不是真正的設計模式,但仍不失為⼀一
個簡單的⽅方法,可以將程式鬆綁於具像類別之外。
6
Sample Factory
Extend PizzaStore……
7
–Ch2. The Observer Pattern
“Strive for loosely coupled designs between
objects that interact.”
8
⼯工廠⽅方法模式
⼯工廠⽅方法使⽤用到繼承:把物件的建⽴立委託給次類別進
⾏行,次類別實踐⼯工廠⽅方法以建⽴立物件。
⼯工廠⽅方法允許類別將實體化的動作,交由次類別進
⾏行。
9
The Factory Method Pattern defines an interface for creating
an object, but lets subclasses decide which class to instantiate.
Factory Method lets a class defer instantiation to subclasses.
10
11
–Ch4. The Factory Pattern
[ Dependency Inversion Principle ]
顛覆依賴守則
!
“Depend upon abstractions. Do not depend upon
concrete classes.”
依賴抽象類別,不要依賴具象類別。
12
What’s Good?
封裝變動
避免重複
⽅方便修改
針對界⾯面
13
抽象⼯工廠模式
抽象⼯工廠使⽤用物件合成:物件的建⽴立被實踐在⼯工廠介
⾯面所暴露出來的⽅方法中。
抽象⼯工廠建⽴立相關的物件家族,⽽而不需要依賴他們的
具象類別。
14
The Abstract Factory Pattern provides an interface for
creating families of related or dependent objects without
specifying their concrete classes.
15
16
⼯工廠模式
所有⼯工廠都是⽤用來封裝物件的建⽴立。
所有的⼯工廠模式都提倡鬆綁,以便降低應⽤用程式和具
象類別之間的相依程度。
17
⼯工廠⽅方法模式
⼯工廠⽅方法使⽤用到繼承:把物件的建⽴立委託給次類別進
⾏行,次類別實踐⼯工廠⽅方法以建⽴立物件。
⼯工廠⽅方法允許類別將實體化的動作,交由次類別進
⾏行。
18
抽象⼯工廠模式
抽象⼯工廠使⽤用物件合成:物件的建⽴立被實踐在⼯工廠介
⾯面所暴露出來的⽅方法中。
抽象⼯工廠建⽴立相關的物件家族,⽽而不需要依賴他們的
具象類別。
19
OO Principles - ch1~4
Encapsulate what varies.
Favor composition(合成) over inheritance(繼承)
Program to interface, not implementations.
Strive for loosely coupled designs between objects that interact.
Classes should be open for extension but closed for modification.
Depend upon abstractions. Do not depend upon concrete
classes.
20
Thanks!
!
Discussion…
21

Design Pattern - Factory Pattern