面向对象编程与面向过程编程的区别

  一、面向对象编程(OOP,Object Oriented Programming):

    不必关心对象的具体实现,只需要能够满足用户的需求即可。主要以类或者对象为组织代码的基本单元。

  对象的三个主要的特性:

    1、对象的行为:可以对对象施加哪些操作,或者是对对象施加哪些方法。

    2、对象的状态:施加方法时,对象如何回应。

    3、对象的标识:如何判断具有向共同行为与状态的不同对象。

  好处之一:可以让用户自定义Java类变得轻而易举。

  二、面向过程编程:

  过程是指解决问题的步骤:也就是先干什么,再干什么,然后再干什么【流程化作业】。

    主要以“过程”作为组织代码的基本单元,属于一种流程话的编程风格,通过拼接一组顺序执行的方法,来操作数据完成这一项工作。

    主要是数据方法分离。猜测:可以先有方法,再有数据。最大的特点就是不支持类和对象。没有丰富的面向对象编程特征(继承、多态、封装)

  三、面向对象编程相比较面向过程编程的好处?

    1、OOP 更加能够应对大规模复杂程序的开发

    2、OOP 风格的代码更易复用、易扩展、易维护

    3、OOP 风格的代码更易复用、易扩展、易维护

  四、常见的面向过程编程?

    1、滥用getter、setter方法。

    2、滥用全局变量、全局方法。

      代码中的配置参数一般设置为常量,放到某一个类中。静态方法将方法数据分离,破坏了封装的特性,典型的面向过程风格。

    3、定义数据和方法分离。

      MVC三层结构包括了Model层、Controller层、View层,每一层都有自己固定的作用。并且在某一种程度下固定了编码的书写过程。是一种典型的面向过程编码的方式。当然了这种开发模式被人戏称为“基于贫血模型的开发模式”。

  五、为什么明明知道面向对象编程与面向过程编程的区别,但还是容易写出面向过程风格的代码?????  

    在OOP类的设计中需要技巧和设计经验,思考如何封装合适的数据和方法到一个类里。

    面向过程编程往往更加符合人的流程化思维方式,比如:在生活中完成一个任务,通常更思考完成任务第一步需要干什么、第二步需要干什么。但是面向对象编程恰恰相反。它是一种自底向上的思考方式。先将任务翻译为一个一个模块,最后按照流程将类组装起来,完成整个任务。

 

   

posted @ 2023-06-30 22:53  我太想努力了  阅读(391)  评论(0编辑  收藏  举报