美文网首页
概念理解1:面向对象 面向接口

概念理解1:面向对象 面向接口

作者: 志华_0925 | 来源:发表于2017-09-19 20:51 被阅读0次

面向对象

把一组数据结构合和处理它们的方法组成对象(object),把相同行为的对象归纳为,通过类的封装隐藏内部细节,通过继承实现类的特化,通过多态实现基于对象类型的动态分派。

继承和组合

继承(Inheritance)是一种联结类与类的层次模型。指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;继承是一种 is-a 关系。
组合(Composition)体现的是整体与部分、拥有的关系,即 has-a 的关系。

在继承 结构中,父类的内部细节对于子类是可见的。所以我们通常也可以说通过继承的代码复用是一种白盒式代码复用 。(如果基类的实现发生改变,那么派生类的实现也将随之改变。这样就导致了子类行为的不可预知性)
组合 是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能。因为在对象之间,各自的内部细节是不可见的,所以我们也说这种方式的代码复用是 黑盒式代码复用 。
继承 ,在写代码的时候就要指名具体继承哪个类,所以,在编译期就确定了关系。(从基类继承来的实现是无法在运行期动态改变的,因此降低了应用的灵活性)
组合,在写代码的时候可以采用面向接口编程。所以,类的组合关系一般在运行期确定。

依赖倒置 控制反转 依赖注入 面向接口编程

目标:实现高内聚低耦合


依赖:一个对象,往往需要跟其他对象打交道,既包括获知其他对象的状态,也包括仰赖其他对象的行为,而一旦这样的事情发生时,我们便称该对象依赖于另一对象。
依赖倒置: 解耦和最重要的原则就是依赖倒置原则,高层模块不应该依赖底层模块,他们都应该依赖抽象(程序里的抽象就是接口)。抽象不应该依赖于细节(具体实现),细节应该依赖于抽象。
控制反转: 控制反转跟依赖倒置是如出一辙的两个概念,当存在依赖倒置的时候往往也存在着控制反转。控制反转跟依赖倒置都是一种编程思想,依赖倒置着眼于调用的形式,而控制反转则着眼于程序流程的控制权。
依赖注入:依赖注入与依赖倒置、控制反转的关系仍旧是一本万殊。依赖注入,就其广义而言,即是通过“注入”的方式,来获得依赖,通常用于框架开发。
面向接口编程:无论是依赖倒置、控制反转、还是依赖注入,都已经蕴含着“面向接口编程”的思想。面向接口,就意味着面向抽象。
“面向对象”与“面向接口”并非两种不同的方法学,“面向接口”其实是“面向对象”的内在要求,是其一部分内涵的集中表述。我们对于理想软件的期待常被概括为“高内聚,低耦合”,这也是整个现代软件开发方法学所追求的目标。面向对象方法学作为现代软件开发方法学的代表,本身就蕴含着“高内聚,低耦合”的思想精髓,从这个意义上来说,“面向对象”这个表述更加侧重于“高内聚”,“面向接口”的表述则更加侧重于“低耦合”。

相关文章

  • 概念理解1:面向对象 面向接口

    面向对象 把一组数据结构合和处理它们的方法组成对象(object),把相同行为的对象归纳为类,通过类的封装隐藏内部...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

  • JavaScript 面向对象入门

    面向对象的概念 1、概念: 从编程思想角度理解:面向过程的编程思想,关注解决问题的步骤;面向对象的编程思想,关注...

  • 面向对象的思想

    1. 面向对象基本概念 面向对象(Object Oriented,OO)是软件开发方法面向对象是一种对现实世界理解...

  • 面向对象, equals与 ==区别演示,print与print

    一. 面向对象 1.理解面向对象的概念 类与对象 三大特征:封装示例封装演示 面向对象: 在调用对象时,除了要指定...

  • 类与对象的哲学关系

    从C到C++的发展历程可以全面了解面向过程到面向对象的过程 面向对象的概念: 理解面向对象: ...

  • 封装 继承 多态(补) 20

    java面向高级(封装,继承,多态,接口):目标:a.理解相关概念 b.进行面向对象的设计 c.更好读懂代码 一...

  • 谈一谈javascript面向对象

    从今天起我们开始讨论javascript的面向对象 面向对象概念理解 面向对象语言有个标志=>它们都具有类的概念,...

  • Java复习笔记——系统整理

    一、面向对象概念 1. 类与对象 1.1 面向过程和面向对象 面向过程 (Procedural Programmi...

  • AOP(一)---什么是AOP

    要理解AOP我们先要理解其他一些概念: 面向过程编程 面向对象编程 面向切面编程 面向过程编程OPP 面向过程的编...

网友评论

      本文标题:概念理解1:面向对象 面向接口

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