【軟考學習】設計模式——策略模式
阿新 • • 發佈:2018-12-31
【背景】
設計模式是非常重要的一塊知識,每個設計模式都值得深入瞭解和學習。
【內容】
結構型設計模式總結:
橋接設計模式總結:
一、定義:策略模式定義了一系列的演算法,並將每一個演算法封裝起來,而且使它們還可以相互替換。策略模式讓演算法獨立於使用它的客戶而獨立變化。應用場景:1、 多個類只區別在表現行為不同,可以使用Strategy模式,在執行時動態選擇具體要執行的行為。2、 需要在不同情況下使用不同的策略(演算法),或者策略還可能在未來用其它方式來實現。3、 對客戶隱藏具體策略(演算法)的實現細節,彼此完全獨立。
二、UML結構圖:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 策略模式_基本程式碼 { class Program { static void Main(string[] args) { Context context; context=new Context(new ConcreteStrategyA()); context.ContextInterface(); context=new Context(new ConcreteStrategyB()); context.ContextInterface(); context = new Context(new ConcreteStrategyC()); context.ContextInterface(); Console.Read(); } } abstract class Strategy { public abstract void AlogrithmInterface(); } class ConcreteStrategyA : Strategy { public override void AlogrithmInterface() { Console.WriteLine("演算法A實現"); } } class ConcreteStrategyB : Strategy { public override void AlogrithmInterface() { Console.WriteLine("演算法B實現"); } } class ConcreteStrategyC : Strategy { public override void AlogrithmInterface() { Console.WriteLine("演算法C實現"); } } class Context { Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void ContextInterface() { strategy.AlogrithmInterface(); } } }