设计原则

开-闭原则(OCP Open-Closed Principle)
  开-闭 原则讲的是:一个软件实体应当对扩展开放,对修改关闭。
  这个原则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下
  被扩展。换言之,应当可以在不必修改源代码的情况下改变这个模块的行为。

里氏代换原则(LSP Liskov Substitution Principle)
  一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能
  察觉出基类对象和子类对象的区别。而反过来代换则不成立。
  里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不
  会受到影响时,基类才能真正被复用,而衍生类也才能在基类的基础上增加新的行为。

依赖倒转原则(DIP Dependence Inversion Principle)
  抽象不应当依赖于细节,细节应当依赖于抽象。
  要针对接口编程,不要针对实现编程。
  针对接口编程的意思就是说,应当使用java接口和抽象java类进行变量的类型声明、
  参量的类型声明、方法的返还类型声明,以及数据类型的转换等。
  不要针对实现编程的意思就是说,不应当使用具体java类进行变量的类型声明、
  参量的类型声明、方法的返还类型声明,以及数据类型的转换等。
  要保证做到这一点,一个具体的java类应当只实现java接口和抽象java类中声明过
  的方法,而不应当给出多余的方法。

接口隔离原则(ISP Interface Segregation Principle)
  接口隔离原则讲的是:使用多个专门的接口比使用单一的总接口要好。
  定制服务(Customized Service)也是一个重要的设计原则。它的意思是说,如果客户端
  仅仅需要某一些方法的话,那么就应当想客户端提供这些需要的方法,而不要提供不需
  要的方法。

合成/聚合复用原则(CARP Composite/Aggregate Reuse Principle)
  就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过
  向这些对象的委派达到复用已有功能的目的。

迪米特法则(LoD Law of Demeter)
   又叫做最少知识原则(LKP Least Knowledge Principle),就是说,一个对象应当对其他
   对象有尽可能少的了解。
   广义迪米特法则在类的设计上的体现:
     优先考虑将一个类设置成不变类
     尽量降低一个类的访问权限
     谨慎使用Serializable
     尽量降低成员的访问权限
     限制局域变量的有效范围
posted @ 2008-03-12 09:27  谢芳[Kevin]  阅读(273)  评论(0编辑  收藏  举报