2015年11月28日 星期六

Creational Design Patterns

creational design pattern

顧名思義
即產生instance 的pattern
為何要用factory 其實跟DIP(dependency inversion principle)有關系
為了要讓高階的程式邏輯不直接和低階的邏輯產生相依性
而讓new 這個動作交由外部的程式來產生



跟create object 有相關的design pattern 如下:

Abstract Factory and Factory method

Builder

Prototype

Singleton

結論:
1. 可以把這些 creational design pattern 當成互補的pattern
Factory pattern 可以當作產生object 的首選方法
Builder 可以利用factory 作每一個step 的實作,進而完成複雜的 component
Prototype 是利用現成的prototype object 來copy 成另一個新的object
Singleton 可以用在每一個pattern 中。

2. 在開發過程中,
一開始常會用factory pattern
等到factory 的靈活性不足時
才會考慮使用prototype, builder 的pattern
雖然更複雜
但也更有彈性。

Reference: 
1. book Learning PHP Design Patterns 
2. https://sourcemaking.com/design_patterns/builder

沒有留言: