用一套方法論去設計許多方法來解決工程上遇到的問題。 即 "一生萬法、萬法圓通"。

Recent in Recipes

3/Food/post-list

DP1 工廠方法 Section1.1 Factory Method

1 則留言

1. 對於代碼分類和包裝的實用技巧,使它看起來簡潔、優雅。

2. 透過一個工廠方法(connection_factory)去生成一個(產品)實例,而不是用hardcode的方式去生成一個實例。The connection_factory() function is a Factory Method. It returns an instance of  JSON Connector or XMLConnector depending on the extension of the input file path

3.這個方法附帶了生成的條件(if-elif condition), 因此產生了彈性。

4.再把這個方法在包裝一層例外處理的機制,使這個功能加穩固。

5.用來確認異常處理是否有效

6.透過XPath用來匹配符合條件的資料筆(Record)

查找所有包含姓(last name)为 Liar 的 person 元素。对于每个匹配到的元素,展示其基本的姓名和电话号码信息

7.這裡沒有條件匹配,所有的資料筆(Record)都會被掃出來


重點問題思考:

1. 還有哪些重複相同的代碼可以歸納收斂?

2.即使假設可以使用相同的代碼來處理XML和JSON文件,當需要支持第三種格式(例如,SQLite)時,又該對代碼作哪些改變呢?找一個SQlite文件或者自己創建一個,嘗試一下。

3. 像現在這樣,代碼並未禁止直接實例化一個連接器。如果要禁止直接實例化,是否可以實現?試試看。 就是說我們規定只能透過函式產生實例,而不能直接調用類別產生實例?


參考資料:

簡單工廠模式 和 工廠方法模式 的優缺點 

簡單工廠模式 (Simple Factory Pattern)

1 則留言 :

  1. 即是SOLID原則中的"Open Closed Principle (開放封閉原則)"

    回覆刪除