当前位置: 首页 > news >正文

程序设计分析(2)——面向对象与面向过程的分析

关于面向过程的一些分析:

首先是数据的维护问题,面向过程是过程话的,其数据和行为是分开的,所以你不知道哪个过程修改了这个数据,不知道哪个地方调用了这个数据,你无法对其进行控制,安全性,稳定性,可维护性就大大降低了。而且所有数据都是由系统来维护,这也增加了维护的难度。

然后对于面向过程的思想总是将某一个行为看成若干个过程组成,过程与过程之间就有因果关系,都联系在一起,属于紧耦合状态,一旦改变一个过程,则这个行为将会发生异常。

一般用过程化的思想去思考问题总是先思考有多少功能点,而不是先考虑有多少对象参与,他们各负责什么责任。用过程化的思想思考问题,则很有可能造成高耦合度的设计,因为功能点之间可能会重复,可能会相互调用,这样就会增加维护难度;而考虑多少对象时,其责任划分是明确的,是自己负责的事就做,不是就不做,各对象之间不耦合,只注重完成自己职责内的事情,增强了可读和可维护性。

经过这样的分析之后,对于面向对象的思想又进一步加深了,在思考问题的时候,不要先考虑他是什么过程,有哪些步骤,而是应该先思考它可能有哪些对象,找到对象后,弄清它的职责,这样,即使过程发生了变化,也只是协作的对象发生变化而已,不会导致整个过程崩溃。

在系统越来越复杂,越来越难管理的时代,要逐渐养成这样的面向对象的思维方式,从而更好的管理软件。

转载于:https://www.cnblogs.com/cl51287/archive/2010/11/27/1889819.html

相关文章:

  • request获取各种路径总结
  • Sub从接口无法建立OSPF邻居关系实际案例分享
  • [转]oracle定时任务(dbms_job)
  • C++与Lua互操作学习
  • Linux下的NTP
  • 把Excel文件数据导入数据库,支持多工作表
  • Qt添加库文件和头文件目录(QCreator)
  • 如果MFC的消息映射表需要排序...
  • 垂直搜索系统
  • Zend Studio下使用Zend Framwork框架开发配置步骤
  • 关于如何添加windows的性能计数器
  • 分享文档之中国1970年代经典相册(88张图片照射一个时代)
  • [转]了解AOP:来自程序员
  • 25招让男人精力旺旺
  • 紫狐浏览器,你的IPV6浏览器
  • [nginx文档翻译系列] 控制nginx
  • 30秒的PHP代码片段(1)数组 - Array
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android单元测试 - 几个重要问题
  • Java程序员幽默爆笑锦集
  • Java深入 - 深入理解Java集合
  • Linux CTF 逆向入门
  • linux学习笔记
  • mysql外键的使用
  • 分类模型——Logistics Regression
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何设计一个比特币钱包服务
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小程序button引导用户授权
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一个项目push到多个远程Git仓库
  • 译米田引理
  • 原生js练习题---第五课
  • 再谈express与koa的对比
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​力扣解法汇总946-验证栈序列
  • #Spring-boot高级
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (1)(1.13) SiK无线电高级配置(六)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)事件处理——(7)简单事件(Simple events)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (论文阅读11/100)Fast R-CNN
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net专家(高海东的专栏)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • ?php echo ?,?php echo Hello world!;?
  • []error LNK2001: unresolved external symbol _m
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [Android] Upload package to device fails #2720