您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python如何實現抽象工廠模式”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python如何實現抽象工廠模式”文章能幫助大家解決問題。
實 現
下面是實現Abstract Factor模式的一些有用技術:
1) 將工廠作為單件 一個應用中一般每個產品系列只需一個ConcreteFactory的實例。因此工廠通常最好實現為一個Singleton(3.5)。
只有一句話,但是并沒有給出實現。為了說明這個問題,作者按照自己的理解,以前面提到的操作系統主題的例子為背景提供一個實現。
類圖:
有關Singleton設計模式的內容會在后續文章中詳細介紹,這里先大概提一下。
ThemeFactory中首先將構造函數和析構函數設成保護的,這樣用戶就沒有辦法直接構建和銷毀工廠對象。用戶構建和銷毀對象可以使用另外提供的兩個公開的靜態方法:getInstance和deleteInstance。Sington模式就是通過這種方式保證同一時刻只有一個對象存在的。
生成產品的createWindow和createScrobar兩個接口,大家應該已經很熟悉了。
頭文件
首先觀察include語句部分,為了控制具象類的創建和銷毀,抽象類的實現包含了3個具象類的頭文件。一般來講這種感覺不怎么好。這個問題可以解決,但是會比較繁瑣。這里就不再深入討論了。
接下來是兩個靜態變量:instance用來保存ThemeFactory唯一的具象類實例;system_theme用來保存系統的設定值。由于這是個演示程序,所以用這么一個變量來控制程序的運行。
其余的代碼就更加簡單,這里不再說明。
利用者代碼
首先請注意,這里只包含了抽象類的頭文件。并且由于抽象類的頭文件中也沒有包含具象類的頭文件,所以具象類對利用者完全不可見。當系統的主題發生變化時,自動實現了具象工廠類的切換。
執行結果
注意觀察工廠的切換動作。
關于“Python如何實現抽象工廠模式”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。