菜鸟学设计模式(28天)

菜鸟学设计模式(28天)

ID:40313202

大小:274.50 KB

页数:17页

时间:2019-07-30

菜鸟学设计模式(28天)_第1页
菜鸟学设计模式(28天)_第2页
菜鸟学设计模式(28天)_第3页
菜鸟学设计模式(28天)_第4页
菜鸟学设计模式(28天)_第5页
资源描述:

《菜鸟学设计模式(28天)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、菜鸟学设计模式(28天)原则:开放——封闭原则(OCP):  ——对扩展开放,对修改关闭。     里氏代换原则(LSP):     ——子类型必须能够替代它们的基类型     依赖倒置原则(DIP):     ——抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。    接口隔离原则(ISP):     ——使用多个专门的接口比使用单一的总接口总要好    迪米特法则(LoD)/最少知识原则(LKP):——一个对象应当对其它对象有尽可能少的了解 模式:SimplyFactoryPattern:    当我们在买早餐的时候,早餐店里都卖得写什么呢?这点你有注意吗?众

2、多食品摆在那里,你只对营业员说你要何  种食品,他便会知道给你拿什么样的食品给你,这说明什么呢?如果用面向对象的思想来理解的话,营业员在这里就充当了一个工厂的角色,他负责根据你的请求返回你需要的食品对象。而这一点正是简单工厂模式的意图 地二天:StrategyPattern      策略模式是一种定义一系列算法的方法,概念上:都是为了完成同一个任务,只是实现不同。它可以以相同的方式   调用各种算法,降低算法类之间的耦合,利于扩展。    第三天:DecoratorPattern usingSystem;usingSystem.Collections.Generic;usingSyste

3、m.Linq;usingSystem.Text;namespaceDecoretorPattern{   publicclassWater   {       publicvirtualvoidAdd(){}   }      publicclassDecoretor:Water   {       publicWaterww;       publicvoid SetDecoretor(Waterww)       {           this.ww=ww;       }       publicoverridevoidAdd()       {           if(ww!=

4、null)           {               ww.Add();           }       }   }   publicclassAddIce:Decoretor   {              publicoverridevoidAdd()       {           base.Add();           Console.WriteLine("AddIce");       }   }   publicclassAddCoffee:Decoretor   {       publicoverridevoidAdd()       {      

5、     base.Add();           Console.WriteLine("AddCoffee");       }   }    classProgram   {       staticvoidMain(string[]args)       {           AddCoffeecoffee=newAddCoffee();           AddIceice=newAddIce();           coffee.SetDecoretor(newWater());           ice.SetDecoretor(coffee);           

6、ice.Add();           Console.ReadLine();       }   }}装饰器模式:动态的给某对象添加一些额外的职责,把类本身具备的装饰功能从其本身划分出去,当需要时,随时随地的配上需要的功能。好处既是把类的核心职责与装饰功能划分开,而且可以去除相关类的重复装饰逻辑。 第四天:   ProxyPattern     代理分为远程代理 虚拟代理安全代理智能指引远程代理:WebService  隐藏对象不在同一个地址空间的事实虚拟代理:安全代理:用来控制访问时候的权限智能指引:当调用真实的对象时,处理代理的事。usingSystem;usingSystem.C

7、ollections.Generic;usingSystem.Linq;usingSystem.Text;namespaceProxyPatternDemo{   publicabstractclassSubject   {       publicabstractvoidRequest();   }   publicclassRealRequest:Subject   {       publicoverridevoi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。