`
垂直的微笑
  • 浏览: 45227 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C# 大话设计模式学习笔记

    博客分类:
  • .NET
阅读更多

一.面向对象三大特性 封装 继承 多态

  1:编程时喜欢简单的把逻辑提出为一个方法,这样只是面向过程,体现不出面向对象。

  2:最简单常见的是显示应该与逻辑分离

  3:客户常常会有一些修改的要求,客户觉得很简单,但是我们的程序由于考虑不周,修改起来范围很广

  4.修改时常常说需要提供某某源代码才能修改,但这时非常危险的,可能破坏原来程序的正确性

二.UML类图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三.策略模式

    1.策略模式可用来封装任何类型的规则,只要在不同场合应用不同的业务规则,都可以考虑策略模式处理这种变化的可能

    2.策略模式与工厂模式结合后,原来又客户端决定具体实现可转移到策略模式的对象中

四.单一职责原则

    1.如果能想到多余一个可能去改变一个类,那么这么类就具有多余一个的职责

五.开放-封闭原则

    1.开闭原则指的是可以扩展,但不可修改

    2.面对需求,对程序的改动是增加代码而不是修改现有代码

六.依赖倒转原则

    1.抽象不应该依赖细节,细节应该依赖抽象。针对接口编程,不针对实现编程

七.装饰模式

    1.建造者模式要求过程稳定,装饰模式则顺序不定

八.代理模式

    1.远程代理

    2.虚拟代理

    3.安全代理

    4.智能指引

九.工厂方法模式

    1.简单工作模式的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖,但是违背了开闭原则;工作方法模式则将一个类的实例化延迟到子类,由子类决定。

    2.虽然工作方法符合了开闭原则,但却将简单工厂的内部逻辑转移到了客户端!

十.原型模式

    1.在初始化信息不发生变化时,克隆是最好的方法,它隐藏了对象创建的细节

    2.浅层复制只复制值类型,不复制引用

十一.抽象工厂模式

    1.简单工厂模式可用反射技术去除分支判断

十二.状态模式

    1.当一个对象的行为取决与它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了

十三.适配器模式

    1.优先考虑重构,接口不可变考虑适配

十四.备忘录模式

    1.适用于功能复杂但需要维护属性历史的类

十五.组合模式

    1.使得单个对象和组合对象的使用具有一致性

十六.单例模式

    1.防止实例化多个对象是让类自身保存一份唯一实例

    2.双重锁定可以保证多线程安全并避免每次都加锁

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics