“模”法无边-设计模式1

2019-04-14 12:46发布

  1. 忽然想起了王金博同学写的那篇博客《把那个人当作自己》,学习大话模式的时候,其实,作者已经将读者定位了,那就是小菜,所以把小菜当作自己,学习《大话模式》这本书,才会有更大的收获。但是我似乎高估了自己的能力,我远没有小菜那么高的学习能力和理解能力,只能对自己说一声,加油
 
  1. 大话模式已经学了一半,理解的尚浅,说说自己的理解,我觉的众多的模式,都是巧妙地运用继承,多态,封装也就是面向对象的三大特征的结果。
 
  1. 简单工厂模式
    1. 利用父类工厂指定创建的具体子类,由具体子类实例化成相对应的对象。然后调用的该对象的属性,方法。在这里子类继承父类,并且重写了父类的(虚函数或)虚方法,虽表面调用的是父类的方法,但实际上是由已实例化的具体对象的方法,也就是子类的方法,这里运用了多态。
 
  1. 策略模式
    1. ContextStrategy之间是聚合关系,Contexthas a StrategyConcreteStrategyA, ConcreteStrategyB, ConcreteStrategyC均是Strategy的子类。Context中的方法调用Strategy的方法,然后根据Strategy的具体实例化对象,对其子类的方法进行调用。这里运用了面向对象的继承,多态。
 
  1. 单一职责原则
    1. 再好不过的一个类有且只有一个引起它变化的因素(呵呵,这句话是我背过的)
    2. 再通俗一下,就是再好不过的一个类,有且只有一个功能。
    3. C#编程中有且仅有类组成,如果类做到了单一职责原则有助于类的复用,程序的维护。
 
  1. 开放-封闭原则
    1. 如果必须对类,进行修改,那么最好的修改方式是增加一些类
    1. 如果预测到必须(或者可能)要对类,进行修改,那么最好是将这些类进行进一步的抽象,得到抽象类,然后增加子类,或者修改子类已完成对它的修改。
 
  1. 依赖倒转原则
    1. 以我们日常用的暖水壶为例,有三部分构成,瓶胆,外壳,壶塞,其中任何一个坏了,我们都可以进行更换,将暖水壶比作程序1,瓶胆,外壳,壶塞比作三个类,这三个类可以随时被复用。
    2. 我们日常生活中用的水杯,如果杯身破了,那么杯盖也就不能用了。将水杯比作程序2,杯身,和杯盖比作两个类。两个类耦合度太高。
    3. 作为一个优秀的程序员,我们应该尽量做程序1这样的程序。
 
  1. 里氏代换原则
    1. 在一个继承体系中,多态的实现是父类通过具体实例化对象的不同使用子类的方法。
    1. 那么就应该满足子类和父类拥有完全相同的属性和方法。
 
  1. 装饰模式
    1. 先运行父类的方法,再运行子类的方法,已达到子类方法对父类方法的修饰。
    2. 通过多重继承实现利用base调用父类的方法,先实现子类的方法,再实现父类的方法。这里充分地应用了继承
    3. 通过SetComment使一个类成为另一个类的成员。
    4. 同名方法的套用。
 
  1. 代理模式
    1. 代理者和被代理者拥有相同的方法和属性
    1. 被代理者是代理者的一个成员
    1. 代理者调用被代理者的方法
 
  1. 工厂方法模式VS简单工厂
    1. 工厂方法模式
      1. MN次方类对应MN次方工厂
        1. 工厂的实例化
        1. 相应的工厂实例化相应的运算类
    1. 简单工厂
      1. MN次方类对应一个工厂
    1. 工厂方法模式消除了简单工厂的开放-封闭原则,保持了封装对象创建过程的优点。
   
  1. 945了,先发篇博客,之后继续总结,嘻嘻……