第三個設計模式 策略模式

2021-04-12 14:48:11 字數 1282 閱讀 6977

一.策略模式是物件的行為模式,用意是對一組演算法的封裝。動態的選擇需要的演算法並使用

uml示意圖

二.組成部分:

1.環境角色:持有乙個策略類引用

2.抽象策略

3.具體策略:相關的演算法或操作

三.**例子

1. 抽象策略

packagecom.eekq.strategy;

publicinte***ceistrategy

2. 具體策略,這裡我以兩個具體策略為例

packagecom.eekq.strategy;

publicclassconcretestrategy1implementsistrategy }

packagecom.eekq.strategy;

publicclassconcretestrategy2implementsistrategy }

3.環境角色

packagecom.eekq.strategy;

publicclasscontext

/**策略方法*/

publicdoubleadd() }

4.客戶端呼叫

packagecom.eekq.strategy;

publicclassmain }

5.執行結果:

com.eekq.strategy.concretestrategy1的加法運算

com.eekq.strategy.concretestrategy2的加法運算

6.總結

優點:動態改變演算法或行為

缺點:客戶端必須知道所有的策略類,並自行決定使用哪乙個策略類,必須對每乙個演算法了解

addEventListener第三個引數作用

dom方法 addeventlistener 和 removeeventlistener 是用來分配和刪除事件的函式。這兩個方法都需要三個引數,分別為 事件名稱 string 要觸發的事件處理函式 function 指定事件處理函式的時期或階段 boolean dom事件流如圖 當第三個引數設定為t...

第三個Sprint總結

成員 羅凱旋 羅林傑 吳偉鋒 黎文衷 第三階段四則運算專案預期的所有功能功能已經實現,包括自動生成各種難度的算式以及計時功能和小遊戲比賽 看誰一分鐘內算的題目最多等等 團隊github 燃盡圖 結果圖 1.每個成員第二個sprint階段有何需要改進?成員介紹 需要改進 羅凱旋首頁的ui設計有待改進,...

addEventListener的第三個引數詳解

示例 element.addeventlistener mousedown func,element.addeventlistener mousedown func,element.addeventlistener mousedown func,element.addeventlistener mo...