設計模式學習筆記 抽象工廠模式

2021-06-06 05:54:58 字數 1464 閱讀 9666

定義:

為建立一組相關或相互依賴的物件提供一組介面,而且無需指定它們的具體類。

抽象工廠模式是工廠模式的公升級版本,因為它應對的是更加複雜的業務,即當有多個業務品種、業務分類時,通過抽象工廠模式產生需要的物件是一種非常好的解決方式。

由於抽象工廠類較為複雜,我覺得使用乙個具體的例子,更能形象的表達這個模式的思想,而且容易理解,這裡畫類圖就不使用通用的類圖了,模擬乙個跨windows和linux平台的產品族的生產,這裡模擬的是生產記事本和畫圖軟體,跨兩個平台,可以把這個類圖看成乙個座標,橫軸是產品族,縱軸是產品線,工廠類生產的是具體的產品線上的產品。

實現**如下:

public abstract class notepadproduct 

public abstract void dosomething();

}

public class notepadwin extends notepadproduct 

}

public class notepadlinux extends notepadproduct 

}

public abstract class drawpictureproduct 

public abstract void dosomething();

}

public class drawpicturewin extends drawpictureproduct 

}

public class drawpicturelinux extends drawpictureproduct 

}

public abstract class abstractfactory
public class windowsfactory extends abstractfactory 

@override

public notepadproduct createnotepad()

}

public class linuxfactory extends abstractfactory 

@override

public notepadproduct createnotepad()

}

抽象工廠模式優點:

1、封裝性,工廠類,只知道工廠類是誰,就能創造乙個需要的物件,不需要關心具體的實現類。

抽象工廠模式的缺點:

最大缺點就是產品族的擴充套件非常困難。每增加乙個產品,抽象工廠類要修改,其實現類也要修改,嚴重違反了開閉原則。

設計模式學習筆記 抽象工廠模式

抽象工廠開始之前,我不得不先說一句,關於工廠方法,我以為不太常用來著。而實際上,想到當年在學校,老師在教三層的時候告訴我們,service 與 dao 層必須都要繼承自介面,並提供乙個實現類,只是神秘的一笑告訴我們,這對 有好處,然而一直到了學期結束也不知道有什麼好處。大概也不知道什麼時間,越寫越多...

設計模式筆記 抽象工廠模式

抽象工廠模式向客戶端提供乙個介面,使得客戶端在不必指定具體型別的情況下,建立多個產品族中的物件。本文採取的仍然是接著以前的那個快餐店的例子。現在,快餐店經常良好,逐漸發展壯大,為了適合不同地方人的飲食習慣,建立了兩大系列 相當於產品族 快餐,北方系列和南方系列。每個系列分別由乙個大廚掌勺。抽象工廠模...

設計模式筆記 抽象工廠模式

摘要 介紹了抽象工廠模式的基本概念,並給出了c 語言編寫的程式示例 工廠模式圖 抽象工廠模式向客戶端提供乙個介面,使得客戶端在不必指定具體型別的情況下,建立多個產品族中的物件。本文採取的仍然是接著以前的那個快餐店的例子。現在,快餐店經常良好,逐漸發展壯大,為了適合不同地方人的飲食習慣,建立了兩大系列...