-
策略模式圖解查看全部
-
策略模式定義查看全部
-
一,策略模式知識點(diǎn)總結(jié): 1,設(shè)計原則:找出應(yīng)用中需要變化的部分,把他們獨(dú)立出來,不要和那些不需要變化的代碼混在一起。我們把不變的功能功能方法名聲明為策略接口,特定種類的方法去具體實(shí)現(xiàn)。 2,面向接口編程文不是棉線實(shí)現(xiàn)編程。策略接口使得方法具有無限寬廣的擴(kuò)展性。 3,多用組合少用繼承。 二,策略模式實(shí)現(xiàn)的要點(diǎn): 1,通過分離變化得出的策略接口Strategy。 2,Strategy的實(shí)現(xiàn)類。 3,客戶程序中有一個Strategy。 4,在客戶程序中選擇/組裝正確的Strategy實(shí)現(xiàn)類。 三,策略模式的優(yōu)點(diǎn): 1,使用了組合,使構(gòu)架更靈活。 2,富有彈性,可以較好的應(yīng)對變化(開一閉原則)。 3,更好的代碼復(fù)用性(相對于繼承)。 4,消除大量的條件語句,易于維護(hù)。 四,策略模式的缺點(diǎn): 1,客戶代碼需要了解每個策略實(shí)現(xiàn)的細(xì)節(jié)。 2,增加了對象的數(shù)目,由于我們是新增對象的方法來應(yīng)對變化,因此策略算法的數(shù)量會隨時間急劇膨脹,給我們的維護(hù)帶來困難。 五,策略模式適用場景: 1,許多相關(guān)類僅僅是行為的差異。 2,運(yùn)行時選擇不同的算法變體。 3,通過條件語句在多個分支中選取。查看全部
-
由于飛行類接口的對象是基類的私有屬性,子類并沒有繼承該屬性,因而不能在子類中初始化,只能經(jīng)過父類進(jìn)行初始化。也就是必須的用super函數(shù)先調(diào)用父類的構(gòu)造方法,然后調(diào)用父類的set函數(shù)。查看全部
-
策略模式: 1,創(chuàng)建一個抽象基類,積累中包含子類公有的方法,然后將不同類各有不同需要的方法設(shè)定為抽象函數(shù)。都相同的方法在基類中實(shí)現(xiàn)。 2,將一些類相同,一些類種不同的方法先創(chuàng)建一個該方法的接口,然后在積累中添加該方法的調(diào)用函數(shù),并添加該接口實(shí)現(xiàn)類的對象作為私有屬性,然后添加set方法,然后在創(chuàng)建的抽象基類的子類實(shí)現(xiàn)中在子類的構(gòu)造方法中通過super();調(diào)用基類的構(gòu)造方法,然后通過super( new set方法)來給父類的私有對象成員賦值。然后就完成了組合的實(shí)現(xiàn)。查看全部
-
1,在抽象父類中實(shí)現(xiàn)所有類共有的特征;如叫和顯示方法,但是叫聲都相同,用普通的方法,但是每種鴨子的外觀不同,因而我們把顯示的方法寫成抽象的。 2, 1)添加一個飛的方法:在父類中添加實(shí)現(xiàn)的方法,子類通過繼承就可以獲得父類中飛行的方法,但是優(yōu)點(diǎn)是簡單易用,但是粗暴丑陋,不具有靈活性,對未來變更支持差。需要在子類中復(fù)寫飛行的方法以提供飛行行為。這很容易趙成錯誤(癡心的程序猿會忘記覆寫)。 2)提供一個抽象的飛行方法,強(qiáng)迫子類實(shí)現(xiàn)自己的飛行行為: 優(yōu)點(diǎn):足夠靈活,每一個每一個子類都必須覆寫方法完成其飛行能力。 缺點(diǎn):每個子類都要實(shí)現(xiàn)一遍代碼,即使相同的行為也不例外。代碼重復(fù)卻沒有復(fù)用代碼。查看全部
-
什么是策略模式:查看全部
-
策略模式的適用場景查看全部
-
策略模式的缺點(diǎn)查看全部
-
策略模式的優(yōu)點(diǎn)查看全部
-
組合方式查看全部
-
Composition查看全部
-
抽象方法查看全部
-
策略模式查看全部
-
找出應(yīng)用中需要變化的部分,把他們獨(dú)立出來,變成接口,不要和那些不需要變化的代碼混在一起。查看全部
舉報
0/150
提交
取消