工廠類理論複習

2021-07-08 16:19:31 字數 3943 閱讀 4490

設計模式的東西,其實工作中也用的很多,但是自己都不知道用了哪些,所以自己去網上找了些資料學習下,寫個自己容易理解的筆記來方便自己複習。

這裡的文章感覺還不錯,說的比較好

然後我就看了,再然後我就自己動手來了一次,加入了自己的模擬情況,至少自己更好理解了

一、工廠模式

模擬環境:系統執行的時候,客戶要初始話部分產品的資料,但是不確定要初始化那行產品的資料。

1。普通工廠模式。

對應情況:只需要初始產品「bmw」或者「ad」

類說明:產品抽象類car,具體產品類ad,具體產品類bmw,工廠類driver,程式測試類******factory

產品抽象類car

/**

* 抽象產品類

* @author administrator

* */

public inte***ce car

具體產品類ad

import com.util.o;

/** * 具體產品類ad

* @author administrator

* */

public class ad implements car

}

具體產品類bmw

/**

* 具體產品類bmw

* @author administrator

* */

public class bmw implements car

}

工廠類driver

/**

* 工廠類

* @author administrator

* */

public class driver else if("ad".equals(car))else

}}

程式測試類******factory

/**

* 程式測試

* @author administrator

* */

public class ******factory

}

2。多工廠模式。

對應情況:在上邊程式寫好後,出現了乙個問題。新來的維護小弟經常會寫錯工廠類的帶入**。那麼如何才能防止維護小弟,以及以後的維護的小弟的小弟寫錯帶入**呢。

類說明:其他類不變,優化工廠類driver

優化工廠類driver

/**

* 工廠類

* @author administrator

* */

public class driver

/*** 多工廠模式的優化ad

* @return

*/public car getad()

/*** 這是普通工廠類的呼叫模式

* @param car **

* @return

*/public car drivercar(string car) else if("ad".equals(car))else

}}

程式測試類******factory

/**

* 程式測試

* @author administrator

* */

public class ******factory

public static void ******test()

}

3。靜態工廠方法模式

對應情況:小弟那裡沒問題了,然後老大來看了看**說「還能精簡」。小猿一聽「精簡個毛啊,需求變動下,現在的精簡就成毛了」心裡想想而已,現實肯定是點頭哈腰雙手拇指伸出外加一臉崇拜的說「不愧是老大,我立馬精簡」。心裡再想想精簡乙個地方,意思意思就行了。

類說明:其他類不變,靜態優化工廠類driver方法

靜態優化工廠類driver

/**

* 工廠類

* @author administrator

* */

public class driver

/*** 多工廠模式的優化ad

* 靜態化方法

* @return

*/public static car getad()

/*** 這是普通工廠類的呼叫模式

* @param car **

* @return

*/public car drivercar(string car) else if("ad".equals(car))else

}}

程式測試類******factory

/**

* 程式測試

* @author administrator

* */

public class ******factory

public static void ******test()

}

3。抽象工廠模式

對應情況:老大最近表示,專案做的不錯,客戶現在要求增加產品意味著要多給公司錢(怎麼不見給漲個工資呢,鬱悶下),但是公司決定準備給小猿乙個更有挑戰的專案,為了能繼續讓客戶掏錢,現要求小猿在接受新專案的同時,也要偶爾管管這個專案,給小猿招幾個實習生來。然後一切為了讓實習生在開發的過程中不會影響到原先的工廠,不需要小猿花太多時間回來處理問題。。。

類說明:其他類不變,抽象工廠類driverinte***ce,具體工廠類driverad,具體工廠類driverbmw

抽象工廠類driverinte***ce

/**

* 抽象工廠類

* @author administrator

* */

public inte***ce driverinte***ce

具體工廠類driverad

/**

* 具體工廠類driverad,針對ad

* @author administrator

* */

public class driverad implements driverinte***ce

}

具體工廠類driverbmw

/**

* 具體工廠類driverbmw,針對bmw

* @author administrator

* */

public class driverbmw implements driverinte***ce

}

程式測試類******factory

/**

* 程式測試

* @author administrator

* */

public class ******factory

public static void staticfactory()

public static void ******test()

}

然後小猿又開始愉快地、興奮地投入到了下乙個專案的開發中,要是還覺得看不懂,這裡還有乙個簡單的

簡單工廠複習總結

簡單工廠 定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同的父類.簡單工廠模式角色 工廠,抽象產品,具體產品.簡單工廠是一種類建立型模式.可以引入配置類實現在不修改客戶端 的前提下增加和更換具體產品.所有工廠模式都強調把建立物件的職責和使用物件的職責進行分離.簡單工廠...

C 理論考試複習題

c 練習題及答案 一 c 練習題及答案 二 c 練習題及答案 三 c 練習題及答案 四 c 練習題及答案 五 此書包含四個部分,part i為c 基礎 包含1 7章 part ii為c 標準庫 包含8 12章 part iii為類設計者的工具 包含13 16章 part iv為高階主題 包含17 1...

複習 類(包含)

01.02.程式的版權和版本宣告部分 05.檔名稱 test.cpp 06.作 者 劉芳 07.完成日期 201 3年12 月 13 日 08.版 本 號 v1.0 09.對任務及求解方法的描述部分 10.輸入描述 無 11.問題描述 12.程式輸出 輸出學生資訊 13.問題分析 略 14.演算法設...