zoukankan      html  css  js  c++  java
  • 面向过程和面向对象的区别

    所谓面向过程,就是将一个具体问题,按照时序的先后顺序,一步一步的完成。

    所谓面向对象,就是将一个具体的问题,按照问题空间,划分成不同的小问题空间,层级划分下去,最后再在最小粒度的问题空间里,运用面向过程的思想解决各自的问题。

    区别:

    面向对象中各个小问题空间使用到的数据,是与其他空间没有必然的关联关系的,也就是说,一个问题空间里的问题不需要使用到另一个问题空间里的数据。而整个问题的解决,是通过客户端程序,将它们按照一定的顺序组合起来,这个是面向过程的思想。

    面向过程中,各个函数按照一定的顺序调用,函数与函数间是有紧密的联系的,下一个函数的使用需要调用上一个函数处理过的数据。这样就造成了系统非常紧密的耦合,当有新的功能需要扩展,就需要更改很多地方的代码,系统越大,就越难修改和重构,甚至导致系统的崩溃。

    例子:

    五子棋,面向过程的设计思路就是首先分析问题的步骤:

    1、开始游戏,    2、黑子先走,    3、绘制画面,    4、判断输赢,    5、轮到白子,    6、绘制画面,    7、判断输赢,    8、返回步骤2,    9、输出最后结果。

    把上面每个步骤用分别的函数来实现,问题就解决了。

    而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:

    1、黑白双方,这两方的行为是一模一样的,

    2、棋盘系统,负责绘制画面,

    3、规则系统,负责判定诸如犯规、输赢等。

     

    主要的区别就是,

    面向过程的每一个点都是紧密联系的,比如4必须在3前面调用,才能正确的完成功能。

    而面向对象的每一个点保持相对的独立,比如只要给相应的条件,3可以在任何时间地点正确完成它的功能。

     

  • 相关阅读:
    java EL表达式中${param.name}详细
    javascript中常用坐标属性offset、scroll、client
    Oralce if ..elsif结构
    VS2013 字符串函数与VC不兼容问题解决方法
    Directory Instruction
    Timestamp
    GetCurrentTime() and CFile option
    MessageBox 参数说明
    单片机红外线接收算法
    IAR for MPS430 V7.12.1 编程规范
  • 原文地址:https://www.cnblogs.com/tisakong/p/4634826.html
Copyright © 2011-2022 走看看