读书人

C# 狂言设计模式学习笔记

发布时间: 2012-10-26 10:30:59 作者: rapoo

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

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

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

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

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

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

二.UML类图

C# 狂言设计模式学习笔记

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

三.策略模式

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

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

四.单一职责原则

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

五.开放-封闭原则

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

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

六.依赖倒转原则

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

七.装饰模式

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

八.代理模式

?? ?1.远程代理

?? ?2.虚拟代理

?? ?3.安全代理

?? ?4.智能指引

九.工厂方法模式

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

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

十.原型模式

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

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

十一.抽象工厂模式

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

十二.状态模式

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

十三.适配器模式

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

十四.备忘录模式

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

十五.组合模式

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

十六.单例模式

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

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

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

读书人网 >软件开发

热点推荐