簡單工廠模式 工廠方法模式和抽象工廠模式小結

2021-09-30 13:25:20 字數 2437 閱讀 7730

工廠模式是最重要的模式,因為大多數模式都需要用到工廠模式。

多數設計模式的內容講解的都是如何設計介面。介面如何產生呢?如果在客戶**(類庫的使用者稱之為客戶)中直接使用具體類,那麼就失去了介面的意義。因為介面的使用目的,就是要降低客戶對具體類的依賴程度。如果在客戶**中直接使用介面,那麼就造成了客戶對具體類名稱的依賴。(客戶最終需要以某種方式指明所需要的具體類,如配置檔案或**,但是只需要指出一次,所以說降低對具體類的依賴程度)。要使客戶**不依賴具體類,唯一的方法,就是讓客戶**不依賴具體類的部分不知道具體類的名稱。知道具體類名稱的部分,僅僅是配置部分。(配置檔案或者配置**)。

依賴不可能完全消除,除非二者毫無聯絡。但是可以將這種依賴的程度降到最低。

既然不能直接建立具體類,那麼就需要通過乙個建立者類來建立介面的實現類。這樣就產生了工廠類。

抽象工廠是應對產品族概念的。比如說,每個農場可能要同時生產蘋果,橘子,大公尺,玉公尺,那麼每乙個農場都要有建立蘋果,橘子,大公尺,玉公尺的方法。

簡單工廠模式:又稱靜態工廠方法(static factory methord)模式。乙個抽象產品類,可以派生多個具體產品類。

用來生產同一等級結構中的任意產品。(對於增加新的產品,無能為力)

public class ******factory 

}inte***ce fruit

public void eat()

};class orange implements fruit

};class factorytest

public static factorytest getinstance()

return factory;

} }public orange neworange()

};

工廠方法模式:又稱多型性工廠(polymorphic factory)模式或虛擬構造子(virtual constructor)模式。乙個抽象產品類,可以派生出多個具體產品類。

乙個抽象工廠類,可以派生出多個具體工廠類。

每個具體工廠類只能建立乙個具體產品類的例項。

用來生產同一等級結構中的固定產品。(支援增加任意產品)   

public class factorymethod 

}abstract class fru

} @override

public void eat()

}class orangefru extends fru

@override

public void eat()

}abstract class frufac

public abstract fru getfru();

} @override

public fru getfru() }

class orangefac extends frufac

}

抽象工廠模式:又稱工具箱(kit或toolkit)模式。多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。

乙個抽象工廠類,可以派生出多個具體工廠類。

每個具體工廠類可以建立多個具體產品類的例項。

用來生產不同產品族的全部產品。(對於增加新的產品,無能為力;支援增加產品族)  

package model;

public class abstractfactory

}abstract class frui

abstract class food

} @override

public void eat()

}class orangefrui extends frui

@override

public void eat()

}class rice extends food

@override

public void cook() }

class corn extends food

@override

public void cook() }

abstract class fact

public abstract frui getfru();

public abstract food getfood();

}class wuxifact extends fact

@override

public food getfood() }

class nanjinfact extends fact

@override

public food getfood()

}

區別:簡單工廠模式和工廠方法模式只有乙個抽象產品類,而抽象工廠模式有多個。

簡單工廠模式只建立乙個具體工廠類,工廠方法模式的具體工廠類只能建立乙個具體產品類的例項,而抽象工廠模式可以建立多個。

簡單工廠模式 工廠方法模式和抽象工廠模式

第一.簡單工廠模式 有三種元件,乙個介面,n個實現類,乙個工廠類。在建立物件的時候,利用簡單工廠模式,可以根據傳參的不同,建立出不同的實現類物件。實現步驟 1.建立介面 2.建立n個實現類 3.建立工廠類,裡面有返回值型別為介面的方法 見如下 1.建立介面 inte ce sender 2.建立介面...

簡單工廠模式 工廠方法模式和抽象工廠模式

一 簡單工廠模式 將建立物件和操作物件分離開來,實現解耦。簡單工廠模式通過乙個引數變數來決定例項化哪乙個類,主要包括抽象產品類 提供公共方法 具體產品類 覆蓋抽象產品類的公共方法 和產品工廠 根據引數例項化具體產品 三個部分。二 工廠方法模式 如果需要新增乙個產品,那麼簡單工廠模式就需要修改產品工廠...

簡單工廠模式 工廠方法模式 抽象工廠模式

簡單工廠模式 簡單工廠模式並不是23種設計模式中的,但是在實際的應用中卻經常使用。uml圖 簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在使用...