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