软件设计原则

    最近在读 《java desion》这本书,里面介绍了26种设计模式和几种设计原则。笔者会根据读书的进度,将内容与朋友们分享。
    这本书里介绍了以下几种设计原则
    1 开-闭原则(Open-Close Princilpe,OCP)
Software entities should be open for extension,but closed for modification.
一个软件实体应当对扩展开放,对修改关闭.
1)通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性.
2)已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性.
    2 可变性封装的原则(Principle of Encapsulation of Variation,EVP)
找到一个系统的可变因素,将之封装起来.
1)一中可变性不应当散落在代码的很多角落里,应当被封装到一个对象里面.
2)一种可变性不应当与另一种可变性混合在一起. 
    3 里氏替换原则(Liskov Substitution Princilple,LSP)
任何基类(父类)可以出现的地方,子类一定可以出现. 
    4 依赖倒转原则(Dependency Inversion Principle,DIP)
要依赖与抽象,不要依赖与实现. 
    5 接口隔离原则(Interface Segregation Principle,ISP)
应当为客户端尽可能提供小的单独的接口,而不要提供大的总接口. 
    6 合成/聚合服用原则(Composition/Aggregation Principle,CARP)
要尽量使用合成/聚合,而不是继承关系达到复用的目的. 
    7 迪米特法则(Law of Demeter,LoD)
一个软件实体应当尽可能少的与其他实体发生相互作用.

相关推荐