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

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

  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.双重锁定可以保证多线程安全并避免每次都加锁

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值