av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

設計模式系列-抽象工廠模式

本文轉(zhuǎn)載自微信公眾號「花括號MC」,作者花括號MC。轉(zhuǎn)載本文請聯(lián)系花括號MC公眾號。

豐順網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)。

抽象工廠提供了一個創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定他們具體的類。簡單來說是為需要創(chuàng)建多個相關聯(lián)產(chǎn)品的場景提供了解決思路。

舉個例子

很多軟件都支持配置不同的顏色的主題,當切換主題時,所有按鈕樣式和顏色都會統(tǒng)一切換。

假設我們的軟件只有三類按鈕,分別是Button, TextField,以及ComboBox,并且我們的軟件只提供兩類主題,即紅色主題和綠色主題。

來看一下UML :

再來看一下具體代碼如何實現(xiàn)。

先來創(chuàng)建一個SkinFactory接口

 
 
 
 
  1. public interface SkinFactory {
  2.     Button createButton();
  3.     TextField createTextField();
  4.     ComboBox createComboBox();
  5. }

通過實現(xiàn)SkinFactory實現(xiàn)綠色主題工廠

 
 
 
 
  1. //紅色主題工廠
  2. public class RedSkinFactory implements SkinFactory {
  3.     @Override
  4.     public Button createButton() {
  5.         return new RedButton();
  6.     }
  7.     @Override
  8.     public TextField createTextField() {
  9.         return new RedTextField();
  10.     }
  11.     @Override
  12.     public ComboBox createComboBox() {
  13.         return new RedComboBox();
  14.     }
  15. }

紅色主題工廠類類似,因為篇幅原因不在單獨列出。

來看一下客戶端如何使用

 
 
 
 
  1. public class Client {
  2.     public static void main(String[] args){
  3.         //通過切換不同工廠,可以達到所有按鈕顏色都變換的效果
  4.         SkinFactory skinFactory = new RedSkinFactory();
  5.         Button button = skinFactory.createButton();
  6.         ComboBox comboBox = skinFactory.createComboBox();
  7.         TextField textField = skinFactory.createTextField();
  8.         button.display();
  9.         comboBox.display();
  10.         textField.display();
  11.     }
  12. }

總結(jié)

抽象工廠是創(chuàng)建模式之一,抽象工廠適合創(chuàng)建一系列有相關性的多個產(chǎn)品,雖然抽象工廠在擴展一個主題的按鈕時靈活方便,但是也有一定缺點, 最大缺點就是想單獨增加一個不屬于任何主題的按鈕時比較麻煩,比如上面的例子中,如果想增加一個關閉按鈕,這個按鈕即不屬于紅色主題也不屬于綠主題,那么改動起來就比較復雜。

工廠模式三兄弟:簡單工廠適合邏輯簡單,創(chuàng)建產(chǎn)品數(shù)量很少的場景,工廠模式適合創(chuàng)建獨立的產(chǎn)品,抽象工廠適合創(chuàng)建一系列有相關性的多個產(chǎn)品。


網(wǎng)頁名稱:設計模式系列-抽象工廠模式
網(wǎng)頁地址:http://uogjgqi.cn/article/djjhhep.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流