《java与模式》读书笔记6----迪米特法则(LoD)
摘要:迪米特法则(LoD):又称最少知识原则(LKP),就是说一个对象应当对其他对象尽可能少的了解。 狭义的迪米特法则: 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中一个类需要调用另一个类的方法的话,可以通过第三者转发这个调用. 缺点: 会在系统内造出大量的小方法,散落在系统的各个角落.这些方法仅仅是传递间接的调用,因此系统与系统中的商业逻辑无关.当设计师试图从一张类图看...
阅读全文
《java与模式》读书笔记5----接口隔离原则(ISP)和合成/聚合复用原则(CARP)
摘要:接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好。 一个类对另外一个类的依赖性应当是建立在最小的接口上的。 一个接口都代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。 合成/聚合复用原则(CARP):又称合成复用原则(CRP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向...
阅读全文
《java与模式》读书笔记4----里氏代换原则(LSP)和依赖倒转原则(DIP)
摘要:里氏代换原则(LSP):如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。换言之,一个软件实体如果使用的是一个基类的话,那么一定使用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。 里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,...
阅读全文
《java与模式》读书笔记3----"开-闭"原则(OCP)
摘要:面向对象的可复用设计(OOD)的第一块基石就是"开-闭"原则(OCP) 。 开闭原则讲的是:一个软件实体应当对扩展开放,对修改关闭。这个原则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换言之,应当可以在不必修改源代码的情况下改变这个模块的行为。 满足“开-闭”原则的设计可以给一个软件系统带来两个无可比拟的优越性: * 通过扩展已有的软件系统,可以提供新的行为,以满足对...
阅读全文
《java与模式》读书笔记2----软件的可维护性和可复用性
摘要:可维护性和可复用性是两个独立的目标,就像两只奔跑的兔子,并不总是方向一致的。 对于面向对象的软件系统设计来说,在支持可维护性的同时,提高系统的可复用是一个核心问题。 软件的维护和普通产品的维护不同,它不仅包含清除错误和缺陷,而且包括对已有性能的扩充,以满足新的设计要求。 软件的维护就是软件的再生,一个好的软件设计必须能够允许新的设计要求以比较容易和平稳的方式加入到已有的系统中去,从而使这个系统能够...
阅读全文
《java与模式》读书笔记1----模式的简介和形而上学
摘要:模式化的过程是把问题抽象化,在忽略掉不重要的细节后,发现问题的一般性本质,并找到普通适用的解决方案的过程。 模式所描述的问题及问题的答案都应当是具有代表性的问题和问题的答案。所谓代表性,就是说它们以不同的形式重复出现。 模式的研究起源于建筑工程大师Alerander,在他的著作《建筑的永恒之道》里,他描述了一些他认为是永恒的、适合任何工程学科的设计原则,他的原则建立在三个基本概念的基础上:质、门、...
阅读全文