美文网首页
面向对象编程的基本原则

面向对象编程的基本原则

作者: SavingUnhappy | 来源:发表于2019-03-20 15:57 被阅读0次

首先要清楚,封装继承多态是面向对象的三大特性。并不是说在设计程序的时候,类的结构使用到了或者体现出了这三个特性就是面向对象。
真正的面向对象设计是需要符合五大基本原则的。

单一职责原则SRP(Single Responsibility Principle)

认为一个类应该仅具有一种单一功能,只有一个能引起他变化的原因。

在面向对象编程中,高内聚,低耦合是软件设计追求的目标。可以把单一职责原则看为高内聚,低耦合的引申。职责过多,可能引起变化的原因就越多,这将是导致职责依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。单一职责通常意味着单一的功能,因此不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。

开闭原则(Open Closed Principle)

软件实体(包括类、模块、功能等)应该对扩展开放,但是对修改关闭。

  • 对扩展开放:即扩展现行的模块,当我们软件的实际应用发生改变时,出现新的需求,就需要我们对模块进行扩展,使其能够满足新的需求!
  • 对修改封闭:在扩展的时候不需要对原有的代码进行修改。

依赖倒置原则DIP(Dependence Inversion Principle)

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。

传统的结构化编程中,最上层的模块通常都要依赖下面的子模块来实现,也称为高层依赖低层!而DIP原则就是高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象。换言之,模块间的依赖是通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。接口和抽象类不应该依赖于实现类,而实现类依赖接口或抽象类。这一点其实不用多说,很好理解,“面向接口编程”思想正是这点的最好体现。

接口隔离原则ISP(Interface Segregation Principle)

其一是不应该强行要求客户端依赖于它们不用的接口;其二是类之间的依赖应该建立在最小的接口上面。

实际编程中,为了减少接口的定义,将许多类似的方法都放在一个接口中,最后发现,维护和实现接口的时候花了太多精力,而接口所定义的操作相当于对客户端的一种承诺,这种承诺当然是越少越好,越精练越好,过多的承诺带来的就是你的大量精力和时间去维护。

里氏替换原则LSP(Liskov Substitution Principle)

子类可以替换父类并且出现在父类能够出现的任何地方。

子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但是基类不一定能替换子类。

相关文章

  • PHP常用试题,送给你

    1 oop是什么? 答:oop是面向对象编程,面向对象编程是一种计算机编程架构,OOP 的一条基本原则是计算机程序...

  • PHP核心技术面试题,跳槽必备!

    1 oop是什么? 答:oop是面向对象编程,面向对象编程是一种计算机编程架构,OOP 的一条基本原则是计算机程序...

  • 2020最新整理PHP面试题及答案

    一、OOP简介及OOP的特点 OOP是面向对象编程,面向对象编程是一种计算机编程架构,OOP的一条基本原则是计算机...

  • 基于Objective-C的iOS架构初探

    面向对象思想 S.O.L.I.D原则 作为面向对象编程和面向对象设计的五个基本原则,S.O.L.I.D的恰当运用,...

  • 从面向对象到面向架构

    学习面向对象编程思想时我们知道面向对象有三大特征,五大基本原则,三大特征是判断一种语言是否只是遵守面向对象思想的依...

  • [视频笔记] - Android进阶之旅-系统架构

    1.面向对象六大基本原则-网络引擎切换 2.AOP面向切面编程 - 淘宝京东网络处理 AOP:使用AspectJ,...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 面向对象_初识

    目录 面向对象编程介绍 类与对象介绍 私有属性与私有方法 面向对象编程 1. 面向对象编程介绍 面向对象编程:Ob...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

网友评论

      本文标题:面向对象编程的基本原则

      本文链接:https://www.haomeiwen.com/subject/rrdzmqtx.html