溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

設計模式之策略模式總結

發布時間:2020-06-20 01:22:13 來源:網絡 閱讀:440 作者:凱哥Java 欄目:編程語言

再上一篇文章《設計模式之策略模式》中,我們通過模擬鴨子項目,了解了什么是策略模式,怎么使用策略模式。本文將通過鴨子項目的學習,對策略模式進行總結。

策略模式:

分別封裝行為接口,實現算法族,超類(父類)里放行為接口對象,

在子類里具體設定行為對象。

原則就是:

? ? 分離變化部分,封裝接口,基于接口編程各種功能。

? ? 此模式讓行為算法的變化獨立于算法的使用者。

策略模式總結:

1:策略模式三要素:

A:接口類。策略接口或是策略抽象類。

B:實現策略接口的具體策略類

C:context上下問。持有具體策略類的實例,并負責調用相關的算法。

來看看duck項目中三個對應

A:對應的就是FlyBehavior和QuackBehavior兩個抽象類

B:具體實現策略類就是QuackBehavior的兩個實現類及FlyBehavior接口的兩個實現類

C:上下文,是由具體策略類的實例。GreenHeadDuck和RedHeadQuck

設計模式之策略模式總結


2:策略模式注意點

2.1:要分析出項目中變化部分與不不變化的部分(如duck項目中的Fly及Quack就是變化的)

2.2:多用組合少用基礎;

? ? 用行為類組合,而不是行為的繼承。更有彈性


3:策略模式優缺點

策略模式優點

可以自由切換算法

避免了多條件的判斷

擴展性好可以定義新的算法提供給使用者

策略模式缺點

算法類數量增多,每個算法都是一個類

算法要對外安全暴露,因為使用者來決定是用哪個算法,必然要了解算法內部做了什么。

本文出自凱哥Java(kaigejava).歡迎來聊




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女