`
shjie5246
  • 浏览: 10852 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
最近访客 更多访客>>
社区版块
存档分类
最新评论

java设计原则

    博客分类:
  • java
阅读更多

开-闭原则(ocp)

开闭原则讲的是:一个软件实体应当对扩展开放,对修改关闭。

设计的关键在于抽象化,可以给出一个或多个抽象类或接口,规定出所有的具体类必须提供的方法的特征作为系统设计的抽象层。这个抽象层预见了所有的可扩展性,因此,在任何扩展情况下都不会改变。

同时,由于从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的设计扩展是开放的,从而满足了“开-闭”原则中对扩展开放。

优点:

1)通过扩展已有的软件系统,可以提供新的行为,已满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性。

2)已有的软件模块,特别是最重要的抽象层模块不能再修改,这使变化中的软件系统有一定的稳定性和延续性。

 

里氏代换原则(LSP)

里氏代换原则讲的是: 一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。

比如,假设有两个类,一个是Base类,另一个是Derived类,并且Derived类是Base类的子类,那么一个方法如果可以接受一个基类对象Base b的话,那么它也可以接受一个子类对象Derived b。

里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才能真正的被复用,而衍生类才能够在基类的基础上增加新的行为。

里氏代换原则反过来不成立

 

依赖倒转原则(DIP)

依赖倒转原则讲的是:要依赖于抽象,不要依赖于具体。

 

接口隔离原则(ISP)

接口隔离原则讲的是:使用多个专门的接口比使用单一的总接口要好。

换言之,从一个客户类的角度来讲:一个类对另外一个类的依赖

 

合成/聚合复用原则(CARP)

 

迪米特法则(LOD)

迪米特法则讲的是:一个对象应当对其他对象有尽可能少的了解

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics