`

OO原则

阅读更多

在OO设计领域,我们知道前人总结了不少的经验,许多的经验在现代软件工程过程中已经被认为是原则来遵守。下面笔者摘抄几项下文涉及到的OO原则的定义。

OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。我的理解是,对于一个已有的软件,如果需要扩展,应当在不需修改已有代码的基础上进行。

DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。我的理解是,对于不同层次的编程,高层次暴露给低层次的应当只是接口,而不是它的具体类。

A. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象

B. 抽象不应该依赖于细节,细节应该依赖于抽象


LoD(迪米特法则,Law of Demeter):只与你直接的朋友通信,而避免和陌生人通信。众所周知类(或模块)之间的通信越少,耦合度就越低,从而更有利于我们对软件的宏观管理。老子论“圣人之治”有相同的思想,《老子》云:“是以圣人之治,虚其心,实其腹,弱其志,常使民无知无欲。”,又云:“小国寡民,邻国相望,鸡犬之声相闻,民至老死,不相往来。”。佩服我们的老祖宗,N千年前就想到了西方N千年后才想到的东西,同时也佩服《java与模式》的作者阎宏,可以用中国传统哲学思想这么生动的说明这一软件设计原则。

 

LSP(里氏替换原则)所有引用基类的地方必须能透明地使用其子类的对象。

 

 

SRP(单一职责原则)只能让一个类有且仅有一个职责。

ISP(接口分离原则)接口的设计应该遵循最小接口原则,不要把用户不使用的方法塞进同一个接口里。

 

分享到:
评论

相关推荐

    OO设计原则 -- OO设计的 DIP依赖倒置原则

    依赖倒置原则的2个重要方针 1.高层模块不应该依赖于低层模块,二者都应该依赖于抽象 2.抽象不应该依赖于细节,细节应该依赖于抽象

    Flask-restful-api:遵循OO原则,使用SQLAlchemy,jwt身份验证进行简单的API REST

    Flask-restful-api:遵循OO原则,使用SQLAlchemy,jwt身份验证进行简单的API REST

    OO设计原则-里氏替换原则

    OO设计原则 --OO设计的LSP里氏替换原则 ,所以使用基类代码的地方,用派生类代码替换后,能够正确的执行动作处理。 ◇ 换句话说,如果派生类替换了基类后,不能够正确执行动作,那么他们的继承关系就应该废除。

    design patterns elements of reusable object-oriented software

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计出现两难情况时我们必须回归到OO原则,以方便判断取舍。 可以这么说:OO原则是我们的目标,而设计模式是我们的做法!

    java oo 设计原则

    java oo 设计原则

    Head First 设计模式(中文版)

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...

    Head First Design Patterns

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。 可以这么说:OO原则是我们的目标,而设计模式是我们的...

    面向对象编程,OO设计的五大原则

    面向对象,编程,OO设计的五大原则 OO的五大原则是指SRP、OCP、LSP、DIP、ISP。

    Head First 设计模式(中文完整版+附书源码)part1

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...

    GRASP原则/模式

    GRASP模式,OO原则和设计模式的基础,原创不易,请珍惜下载

    head first 设计模式

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...

    head_first_design_patterns.pdf Head First 设计模式(英文原版 非扫描)

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...

    浅谈java中OO的概念和设计原则(必看)

    下面小编就为大家带来一篇浅谈java中OO的概念和设计原则(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    深入浅出面向对象分析与设计

    在本书中,你将学到:, ·使用诸如封装(encapsulation)与委派(delegation)的 OO 原则建立灵活的应用程序。, ·使用开闭原则(Open-Closed Principle)与单一责任原则(Single-Responsibility Principle)提升...

    OO设计原则总结.doc

    OO设计原则总结.doc 想回会帮助大家的

    OO设计原则总结

    关于设计模式的一些总结介绍!

    Head.First设计模式_PDF.part1

    千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...

    关于鸭子的问题 策略模式(Strategy Model)编程 重要 思想 理念

    设计体现了三个重要的OO原则: 1.找出应用中可能需要变化的部分,把它们独立出来,不要将其与那些不需要变化的代码混在一起。 2.针对接口编程,而不针对实现编程。  3. 在类中应多用组合,少用继承。 Joe的公司...

    OO设计五个原则.pdf

    OO设计五个原则.pdf

Global site tag (gtag.js) - Google Analytics