国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

設(shè)計(jì)模式-筆記01

2019-11-10 23:10:52
字體:
供稿:網(wǎng)友

1.9 緊耦合vs松耦合

public class Operation{ PRivate double _numberA=0; private double _numberB=0; public double NumberA { get{ return _numberA;} set{ _numberA = value;} } public double NumberB{ get{ return _numberB;} set{_numberB = value;} } public virtual double GetResult(){ double result =0; return result; }}class OperationAdd:Operation // 加法類繼承運(yùn)算類{ public override double GetResult() { double result =0; result = NumberA+NumberB; return result; }}class OperationSub:Operation // 減法類繼承運(yùn)算類{ public override double GetResult() { double result =0; result = NumberA - NumberB; return result; }}class OperationMul:Operation // 乘法類繼承運(yùn)算類{ public override double GetResult() { double result =0; result = NumberA * NumberB; return result; }}class OperationDiv:Operation // 除法類繼承運(yùn)算類{ public override double GetResult() { double result =0; if(NumberB==0){ throw new Exception("除數(shù)不能為0"); result = NumberA / NumberB; return result; } }}public class OperationFactory{ public static Operation createOperation(string operate){ Operation oper = null; switch(operate){ case "+": oper = new OperationAdd(); break; case "-": oper = new OperationSub(); break; case "*": oper = new OperationMul(); break; case "/": oper = new OperationDiv(); break; } return oper; }}

2.7 策略模式解析 減少算法類之間的DPE

反射

3.4 單一原則

3.5 ASD

4.開放-封閉原則 The Open-Closed

類、模塊、函數(shù)等應(yīng)該可以擴(kuò)展,但是不可修改 ASD

面對(duì)需求,對(duì)程序的改動(dòng)是通過增加新代碼進(jìn)行的,而不是更改現(xiàn)有代碼實(shí)現(xiàn)的

強(qiáng)內(nèi)聚,松耦合

里氏代換原則 LSP ,子類必須能夠替換父類類型

裝飾模式(Decorator) 動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé),就增加功能來說,裝飾模式比生成子類更加靈活。

代理模式:

class Proxy{ SchoolGirl mm; public Proxy(SchoolGirl mm){ this.mm=mm; } public void GiveDolls(){ Console.WriteLine(mm.Name+"送你洋娃娃"); } public void GiveFlowers() { Console.WriteLine(mm.Name+"送你鮮花"); } public void GiveChocolate() { Console.WriteLine(mm.Name+"送你巧克力"); }}class SchoolGirl{public string Name{ get{ return name;} set{name =value;}}private string name; }static void Main(string[] args){ SchoolGirl jiaojiao = new SchoolGirl(); jiaojiao.Name="李嬌嬌"; Pursuit daili = new Proxy(jiaojiao); daili.GiveDolls(); daili.GiveFlowers(); daili.GiveFlowers(); Console.Read();}// 代理接口interface GiveGift{ void GiveDolls(); void GiveFlowers(); void GiveChocolate();}// 追求者類class Pursuit:GiveGift{SchoolGirl mm;public Pursuit(SchoolGirl mm){ this.mm=mm;}public void GiveDolls(){ Console.WriteLine(mm.Name+"送你洋娃娃");}...}class Proxy:GiveGift{ Pursuit gg; public Proxy(SchoolGirl mm){ gg = new Pursuit(); } public void GiveDolls(){ gg.GiveDolls(); } ...}// 客戶端如下static void Main(string [] args){ SchoolGirl jiaojiao = new SchoolGirl(); jiaojiao.Name="李嬌嬌"; Proxy daili = new Proxy(jiaojiao); daili.GiveDolls(); ... Console.Read();}工廠方法模式:// 構(gòu)建工廠的接口interface IFactory{ Operation CreateOperation();}class AddFactory:IFactory{ //加法類 public Operation CreateOperation(){ return new OperationAdd(); } ...}// 客戶端IFactory operFactory = new AddFactory();Operation oper = operFactory.CreateOperation();oper.NumberA=1;oper.NumberA=1;double result = oper.GetResult();
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 渑池县| 汤原县| 拉萨市| 青龙| 镶黄旗| 玉环县| 海城市| 南充市| 大城县| 松江区| 三明市| 昆山市| 凤城市| 改则县| 缙云县| 六盘水市| 庆元县| 读书| 治多县| 荥阳市| 华亭县| 马鞍山市| 仁寿县| 伊宁县| 青海省| 阜宁县| 金阳县| 眉山市| 犍为县| 缙云县| 彩票| 德庆县| 衡阳县| 石楼县| 克拉玛依市| 义马市| 湘乡市| 烟台市| 龙门县| 郑州市| 克什克腾旗|