設計模式的東西,其實工作中也用的很多,但是自己都不知道用了哪些,所以自己去網上找了些資料學習下,寫個自己容易理解的筆記來方便自己複習。
這裡的文章感覺還不錯,說的比較好
然後我就看了,再然後我就自己動手來了一次,加入了自己的模擬情況,至少自己更好理解了
第
一、工廠模式
模擬環境:系統執行的時候,客戶要初始話部分產品的資料,但是不確定要初始化那行產品的資料。
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.演算法設...