您好,登錄后才能下訂單哦!
這篇文章主要介紹了在什么情況下可以使用web工廠方法的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇在什么情況下可以使用web工廠方法文章都會有所收獲,下面我們一起來看看吧。
適用性
在下列情況下可以使用Factory Method模式:
? 當一個類不知道它所必須創建的對象的類的時候。
當一個類需要創建某種對象卻無法事先知道它的類型信息的時候。例如前文提到的應用/文檔架構。這個架構的使用者是開發人員,開發的應用也成千上萬,架構的提供者當然沒有辦法知道需要創建對象的類型。可以使用工廠方法模式決定所要創建的對象類型。
這種情況是真不知道。
? 當一個類希望由它的子類來指定它所創建的對象的時候。
如果我們的設計面向的不是通用的架構,只是一個具體的應用場景,那么大多數情況下我們可以知道(至少是知道大部分)需要創建對象的具體類型。但是出于某種考慮(將來的擴展,分散開發的需求等等),仍然希望將創建實際對象的職責交給其子類。
這種情況是裝不知道。
? 當類將創建對象的職責委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時候。
這句話很難理解,還是看原文。
classes delegate responsibility to one of several helper subclasses, and
you want to localize the knowledge of which helper subclass is the delegate.
原文前半句中委托的職責并沒有明確指出是創建對象的職責,很大的可能是翻譯不準確。以下結合實例說明作者的理解,類圖如下:
我們的例子是圖形編輯軟件,支持Rect和Circle兩種圖形,它們都是Shape類的子類。另外,由于某種原因(例如我們希望將來圖形可以在不同的操作系統中表示)我們希望將它們的圖形的描畫功能委托給RectDrawer和CircleDrawer兩個幫助子類。如上圖所示,由于使用了工廠方法模式創建不同的Drawer子類。關于描畫功能具體委托給了哪個Drawer子類的信息都被限制在了具體的圖形子類中。
關于“在什么情況下可以使用web工廠方法”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“在什么情況下可以使用web工廠方法”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。