2015年6月4日 星期四

Android: Custom Dialogs: Factory Method Sample

在較為注重UI與產品整體風格是否一致的應用程式中,客製化的元件是無可避免的事情,由於我們公司的美術都會設計獨特的Dialog,所以外觀常有不同種類,如Diagram 1 - 4所示:

Diagram 1.
dialogFactory04

Diagram 2.
dialogFactory05

Diagram 3.
dialogFactory06

Diagram 4.
dialogFactory07

在過去的案子中,我會採用DialogFragment來製作,並且在每個DialogFragment內各自新增一個create方法,再透過一個Util類別產生,所以類別圖會變成以下樣子,如Diagram 5:

Diagram 5.
dialogFactory01

覺得這樣的方式並不方便,加上每當新增一個Dialog時,Dialog除了要增加一個create方法外,Util類別也要跟著新增,所以就改用Factory Method的方式重構,只要透過實體化欲產生的Dialog工廠時,就可以依據該工廠生成想要的Dialog,Factory Method和重構後的類別圖如Diagram 6和Diagram 7:

Diagram 6.
dialogFactory02

Diagram 7.
dialogFactory03

Sample Code: [CustomDialogFactoryMethodSampleCode](https://github.com/xavier0507/CustomDialogFactoryMethodSample.git)