面向对象

来源:互联网 发布:老子化胡 知乎 编辑:程序博客网 时间:2024/06/09 17:57

      

WHY?

      为什么要引入面向对象?

       面向对象是在结构化设计方法出现很多问题的情况下应运而生的,结构化设计方法求解问题的基本策略是从功能的角度审视问题域,它将应用程序看成实现某些特定任务的功能模块,其中子过程是实现某项具体操作的底层功能模块。在每个功能模块中,数据结构描述带处理数据的组织形式,用算法描述具体的操作过程,面对日趋复杂的应用系统,这种开发思路暴漏了一些弱点。

       1、审视问题域的视角

      结构化设计方法所采用的不是将客体作为一个整体,而是将付于客体之上的行为抽取出来,以功能为目标来设计构造应用系统,而在任何一个问题域中,客体是稳定的,而行为是不稳定的,导致日常维护和扩展非常困难,这是提出面向对象的首要原因。

      2、抽象级别

        结构化设计方法应用的是过程抽象,他是将问题域中具有明确功能定义的操作抽取出来,并将其作为一个实体看待,有些武断,稳定性差,很难准备无误的设计出系统的每一个操作环节,一旦某个客体属性的表示方式发生了变化,就有可能牵扯到已有系统的很多部分,而数据抽象是较高级别的抽象方式,将描述客体的属性和行为绑定在一起,实现统一的抽象,从而达到对显示师姐客体的真正模拟。

      3、封装体

          封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内,该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只通过提供的用户接口实现。这样做既可以实现对客体属性的保护作用,又可以提高软件系统的可维护性。

      4、可重用性

         结构化程序设计方法的基本单位是模块,每个模块知识实现特定功能的过程描述,因此他的可重用单位只能是模块,可重用性不高。

 

     正是基于这些弱点,驱使人们寻求一种新的程序设计方法,以适应现代社会对软件开发的更高要求,面向对象由此产生。

 

What

      在上述的导图中,描述了对面向对象特征要素,开发方法以及设计。下面来总结一下面向对象的三个重要特征:封装,继承,多态

      1、封装:

            封装是面向对象的特征之一,是对象和类概念的主要特性,封装是吧过程和数据包围起来,对数据的访问只能通过已经以的界面,即受保护的接口来访问。通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。封装保证了模块具有较好的独立性,使程序维护修改较为容易。

      2、继承:

            继承是一种联结类的层次结构,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法,对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类),派生类可以从他的基类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

       3、多态

             多态是指相同的操作或函数、过程可作用多种类型的对象上并获得不同的结果,不同的对象,收到同一消息可产生不同的结果,多态允许每个对象以适合自身的方式去相应共同的消息。多态增加了软件的灵活性和重用性。

面向过程和面向对象的区别:

            

      

         

0 0
原创粉丝点击