博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

面向对象基础(概念,优点)

Posted on 2018-03-07 14:38  艾特水煮鱼  阅读(240)  评论(0编辑  收藏  举报

一,为什么要面向对象

      在面向对象出现以前,结构化程序设计是程序设计的主流,又称为面向过程的程序设计。

    1,面向过程

    在面向过程的程序设计中,问题被看做一系列需要完成的任务,如读,计算和打印等,许多函数用于完成这些任务。其中函数式面向过程的,即它关注如何根据规定的条件完成指定的任务。面向过程相当于又函数堆积,互相调用的程序。

   2,面向过程的开发方法,一般存在如下问题:

    2.1,软件的重用性差

        以前写程序,是否经常会看到有实现相同功能的代码到处进行复制、黏贴的情况?存在很大的冗余,软件重用性比较差。重用性:指同一事物不经修改或稍加修改就可多次重复试用的性质。  

        软件重用性是软件工程追求的目标之一。

    2.2  软件可维护性差

         在软件开发过程中,软件的可读性、可修改性和可测试性是软件的重要质量指标。实践证明:面向过程开发出来的软件,维护时期费用和成本仍然很高,其原因是可修改性差,维护困难,       导致可维护性差。

    2.3,开发出的软件不能满足用户的需求变化 

        用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本质是功能分解,功能分解:把问题整体功能的单个处理着手,自顶向下不断把复杂问题分解为子处理,这样一层一层地分解下去,直到仅剩下若干个容易实现的子处理功能为止。因此,结构化方法是围绕实现处理功能的“过程”来构造系统的,而用户需求的变化大部分是针对功能的,用户需求的变化往往造成系统结构的较大变化。

   3,为什么要用面向对象

    面向对象把数据看成程序开发中的基本元素,并且不准它们在系统中自由流动。,并保护这些数据不会被外界的函数意外的改变。

    面向对象将问题分解为一系列实体,这些实体被称为对象,然后围绕这些实体建立数据和函数。面向对象等于把无生命的过程化东西(数据和函数)变成活生生的事物(对象)来看待,更接近现     实世界。建立对象的目的不是完成一个步骤,而是描述某个事物在整个解决问题的步骤中的行为。面向对象过程就是用类一个个地构造出对象来,在主程序里调用的是一个个对象的行为。 

    程序 = 数据结构 + 算法,那么面向对象的理解更类似于:程序 = 对象 + 对象

   4,面向对象的优点

     4.1,更好地适应需求变化,应对变化上。

     4.2,具有更好的重用性

        软件的重用性是提高软件开发生产率和目标系统质量的重要途径。

        面向对象的重用性体现在:

         4.21,代码重用

           通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途

        4.22,设计结果的重用

            指的是重用某个软件系统的设计模型,有助于把一个应用系统移植到完全不同的软/硬平台上

        4.23,分析结果重用

           重用某个系统的分析模型,这种重用特别适用于用户需求未改变,但系统结构发生根本变化的场合

     4.3,更易于维护

         由于适用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,维护也只是针对局部模块,所以维护起来非常方便和低成本

     4.4,更易于扩展

         由于继承,封装,多态的特性,可以设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。基于面向对象的系统也更容易从小到大逐步升级

     4.4,更安全

        数据隐藏的概念帮助程序员们保护程序免受外部代码的侵袭,允许一个对象的多个实例同时存在,而且彼此间不会相互干扰

5,什么是面向对象

    什么是对象,对象时世界中的物体在人脑中的映像。从系统的角度去理解就是问题域或实现域中某些事物的一个抽象,它反映它反映此事物在系统中需要保存的信息和发挥的作用。

    万物皆对象,一棵树、一个人、一个公司都可以说是一个对象。(同类,这个概念很重要)在软件开发中对象是建立面向对象程序所依赖的基本单元,专业来说,对象就是一种代码

    的实例,这种代码执行特定的功能。

    比如开发一个段子商务网站,与电子商务有关的都是我们要操作和关心的,例如商品,订单,用户,目录,购物车等都是对象。如果要开发一个论坛,那么论坛中必备的要素,如论

    坛分类、主题、帖子、评论、用户等也全都是对象。

    面向对象指的就是解决问题的一种方法。在面对比较复杂的系统时,我们可以将它作为一个对象来进行分析。一个系统(解决方案)作为一个对象,可以由多个部分组成。同样,这个对象

    也可以由多个对象组成。同类的事物可以由一个对象来表示。

    5.1 面向对象又分面向对象的分析,面向对象的设计,面向对象的编程

        5.11,面向对象分析(OOA)

               是一种分析方法,它以在问题域的词汇表中找到的类和对象的观点来审视需求。

        5.12,面向对象设计 (OOD)

        5.13,面向对象编程 (OOP)

      6,面向对象可以理解为"以对象为核心" 或"从对象的角度" 来考虑问题