设计模式第二遍的学习.现在对设计模式做一个系统的总结.
设计模式学习的四个层次:
第一层,理解各个模式.知道各个模式是做什么用的.
第二层,对各个设计模式的代码实现.
第三层.知道在什么情况用哪个模式.
第四层.自己根据自己遇到的问题来设计模式.
经过这一个月的设计模式学习,现在已经通过了第一层,刚完成第二层,现在第三层有所接触,但还是好多知识理解的并不深刻.需要以后的实践来加深理解.用了一个星期的时间看大话设计模式这本书.也能感受到老师这样安排的深刻用意.虽然计算机已经成为我们主要的学习手段但是读书这个最基本的方式是不能放下的.同时看书能给自己带来另一种感觉,久违的新鲜感.通过对设计模式的学习和思考发现整本书都在讲的是以下五种内容.
一 抽象 二 法则 三 特点 四 原则 五 关系
一 抽象
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。抽象主要是为了使复杂度降低,以得到较简单的概念,好让人们能够控制其过程来了解许多特定的对象。在大话设计模式中抽象的概念贯穿始终.是其他概念的基础.类的本身就是对对象的抽象,而抽象类和接口又是抽象上的抽象.理解抽象概念是学大话设计模式的一个基础,更是学习面向对象思想的一个基础.
二 法则:
1迪米特法则
迪米特法则也叫做最少知识原则,具体内容为如果两个类不必彼此直接通信,那么这两个类就不应当直接发生相互的作用.如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者来转发这个调用.在大话设计模式中的中介者模式淋漓精致的体现出了迪米特法则.
2接口隔离法则
接口隔离法则和两个概念相通,一个是迪米特法则,另一个是依赖倒转原则.接口隔离法则主要内容是:建立单一接口,不要建立臃肿庞大的接口.
三 特性:
1封装
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,我们不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。简单的去理解封装就是一个类就是封装.
2继承
从一个旧类派生一个新类的过程
3多态
接口的多种不同的实现方式即为多态。
四 原则:
1单一职能原则
单一职能原则是指就一个类而言,应该有且仅有一个引起它变化的原因.这样有利于适应需求的变化,从而使程序提高维护性,复用性,扩展性.使程序更加的灵活.所以在编程的时候在类的职责分离上多做思考,做到单一的职责.这样的代码和程序才具有生命力.
2开放封闭原则
开放封闭原则是说,对软件实体(类,模块,函数等)应该可以扩展,但不可以修改.也就是对扩展是开放的,对修改是封闭的.你可以扩展一个类,但不能去修改一个类,否则就是违背了开闭原则.开闭原则告诉我们在编程的时候尽量要使这个类足够的好,写好之后就不能去修改,如何有新的需求,就增加一些类来满足需求而不是修改原来的类.开放封闭原则同时也是面向对象设计的核心所在.
3依赖倒转原则
针对接口编程,不要对实现编程.高层模块不应该依赖底层模块,两个都应该依赖抽象.抽象不应该依赖细节,细节应该依赖抽象.依赖倒转是面向对象设计的标志,如果程序中所有依赖关系都是终止于抽象类或者接口,那么就是面向对象设计,繁殖就是过程化的设计.
4里氏代换原则
子类型必须能够替换掉他们的父类.本原则使得继承复用成为可能只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才可以真正的复用,而子类可以在父类的基础之上增加新的功能.
五 关系:
五种关系分别是 依赖,关联(聚合,组合),泛化,实现.关于这五种关系刘冰讲解的非常的好,这里就不多赘述了.
以上五个内容我觉得是设计模式的根本和本质的东西,各种各样的模式都在这些原则和关系的基础上进行的变化.我认为学习设计模式最终要的还是要学习设计模式的思想.