2016年11月02日   码农之路   2,498 次浏览

面向对象?什么叫面向对象编程?大家都应该认真的回答下这个问题。

 一、开闭原则

     对扩展开放,对修改闭合。意思就是我们改变一个软件时(比如扩展其他功能),应该通过扩展的方式来达到软件的改变,而不应该修改原有代码来实现变化。

 二、单一职责原则

     一个类只有一个引起这个类变化的原因。即一个类只完成一个功能,如果做不到一个类只完成一个功能,最少要保证一个方法只完成一个功能。

 三、依赖倒置原则

     高层组件应该依赖抽象而不依赖具体,即面向接口编程,一般依赖的成员变量或者参数都应该是抽象的不应该是具体的。
     即:
     1、高层模块不应该依赖低层模块,两者都应该依赖于抽象(抽象类或接口)
     2、抽象(抽象类或接口)不应该依赖于细节(具体实现类)
     3、细节(具体实现类)应该依赖抽象

四、里氏代换原则

     凡是父类出现的地方都可以用子类代替并且原功能没有发生变化,子类不应该覆盖父类的非抽象方法。但是反过来,子类出现的地方,替换为父类就可能出现问题了。
     这个原则是为良好的继承定义一个规范,简单的讲,有4层含义:
     1、子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
     2、子类中可以增加自己特有的方法。
     3、当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
     4、当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

五、迪米特法则

     迪米特法则又叫最少知道原则。通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。
     迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了以后,类的复用性才可以提高。

六、接口隔离原则

     一个接口完成的功能尽可能的单一,不要让一个接口承担过多的责任。
     在使用接口隔离原则的时候需要有一些规范:
     1、接口尽量小:接口尽量小主要是为了保证一个接口只服务一个子模块或者业务逻辑
     2、接口高内聚:接口高内聚是对内高度依赖,对外尽可能隔离。即一个接口内部的声明的方法相互之间都与某一个子模块相关,且是这个子模块必须的。
     3、接口设计是有限度的:但是如果完全遵循接口隔离原则的话,会出现一个问题。即接口的设计力度会越来越小,这样就造成了接口数量剧增,系统复杂度一下子增加了,而这不是真实项目所需要的,所以在使用这个原则的时候还要在特定的项目,根据经验或者尝试判断,不过没有一个固定的标准。

一、开闭原则

     对扩展开放,对修改闭合。意思就是我们改变一个软件时(比如扩展其他功能),应该通过扩展的方式来达到软件的改变,而不应该修改原有代码来实现变化。

为什么最后又把开闭原因说一次,那是因为其他原因最终的目的都是为了实现开闭原则,足见开闭原则的重要性。

赞 赏
申明:除非注明,本站文章均为原创,转载请以链接形式标明本文地址。 如有问题,请于一周内与本站联系,本站将在第一时间对相关内容进行处理。
本文地址: http://www.yyjjssnn.cn/articles/739.html

>>> Hello World <<<

这篇内容是否帮助到你了呢?

如果你有任何疑问或有建议留给其他朋友,都可以给我留言。

:wink: :twisted: :surprised: :smile: :smile9: :smile8: :smile7: :smile6: :smile5: :smile56: :smile55: :smile54: :smile53: :smile52: :smile51: :smile50: :smile4: :smile49: :smile48: :smile47: :smile46: :smile45: :smile44: :smile43: :smile42: :smile41: :smile40: :smile3: :smile39: :smile38: :smile37: :smile36: :smile35: :smile34: :smile33: :smile32: :smile31: :smile30: :smile2: :smile29: :smile28: :smile27: :smile26: :smile25: :smile24: :smile23: :smile22: :smile21: :smile20: :smile1: :smile19: :smile18: :smile17: :smile16: :smile15: :smile14: :smile13: :smile12: :smile11: :smile10: :smile0: :sad: :rolleyes1: :redface: :razz: :question: :neutral: :mrgreen: :mad: :lol: :idea: :exclaim: :evil: :eek: :cry: :cool: :confused: :biggrin: :arrow:

友情链接: 程序员刘杨 刘杨
Copyright 2003~2018 保留所有权利 | 网站地图
备案号:湘ICP备14001005号-2

湘公网安备 43011102001322号