作法(Mechanics)
- 使用Replace Constructor with Factor Method(304)。
- 編譯,測試。
- 決定由什么對象負責提供訪問新對象的途徑。
- ==》可能是個靜態字典(static dictionary)或一個注冊對象(registry object)
- ==》你也可以使用多個對象作為新對象的訪問點(access point)。
- 決定這些reference object應該預先創建好,或是應該動態創建。
- ==》如果這些reference object是預先創建好的,而你必須從內存中被它們讀取出來,那么就得確保它們在被需要的時候能夠被及時加載。
- 修改factory method,令它返回reference object。
- ==》如果對象是預先創建好的,你就需要考慮:萬一有人索求一個其實并不存在的對象,要如何處理錯誤?
- ==》你可能希望對factory method使用Rename Method(273),使其傳達這樣的信息;它返回的是一個既存對象。
- 編譯,測試。