`
sunqing0316
  • 浏览: 41128 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

软考进行时——面向过程设计VS面向对象设计

 
阅读更多

概念

	
	面向过程设计:面向过程其实是最为实际的一种思考方式,就是是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法,它考虑的是实际的实现,一般的面向过程是从上往下步步求精,所以,面向过程最重要的是模块化的思想方法。
	面向对象设计:顾名思义就是以对象为基础的软件设计。教科书上是这么说的:面向对象设计以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,容易被人们所接受。


不解

	看到面向对象“容易被人们所接受”这个评价时,我有一种不解,就个人而言,我反而感觉面向过程的设计更容易被接受,虽然它不够灵活,难以维护,但是在敲代码的时候还是比较容易上手的,因为你不需要抽象,直接想让计算机怎么实现,它就去怎么实现,你一步一步的告诉它,然后它就一步一步的照做,这样的思维方式不是更符合人们的思维吗?从这两种设计方式出现的先后顺序上也能看出面向过程更符合人们的思维习惯吧?
比较
	

	以前学习这两种设计模式的时候,一直都是一边倒的将面向对象奉若神明,但是它是不是真的值得我们这么去膜拜呢?让我们来看看。
	首先,二者在实现方式上的区别从概念上就已经看出来了,面向过程是按步骤走,面向过程是按结构走,可以这么说吧。
	第二,面向过程的思维方式是分析综合,面向对象的思维方式是构造,一个注重细节,一个关注宏观。
	第三,从技巧性上来说,面向过程的设计涉及到算法更多一些,更具有挑战性,技巧性强,而面向对象主要在于对象的抽象技术,抽象完了以后,任何人都可以做后面的工作了。个人觉得做抽象的那个人才是真正的技术人员,其他的后期工作交给码农就可以了,这个成本较低。
	第四,从代码量上来说的话,如果软件规模小,结构简单的话面向过程的开发自然快速,代码量小。反之,自然是首选面向对象的设计。
	第五,至于一提到面向对象随之就提到的灵活啊、可维护、可扩展之类的溢美之词在此就不再介绍了,因为只要一说面向对象,这些就像是附属品一样,大家都耳熟能详,肯定也比我说的好。

总结

	通过上面的比较,相信大家更加坚定了对面向对象的信仰,更加将其奉若神明。不过,这个面向对象中的抽象的过程可不是一般人能做到的,要达到改动只是局部的需要设计的人有足够的经验,使用面向对象的语言不能保证你的程序就是面向对象的,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实,这样设计出来的所谓的面向对象的程序很难有良好的可移植性和可扩展性。
	还有一点我想要说的就是,面向过程绝不是一无是处的。它其实是最实际的思维方式,也是大多数人的思维方式。就算是面向对象的方法,同样也包含着面向过程的思想,面向过程是一种基础的方法。而且相对于面向对象来说,面向过程的方法容易上手,甚至不需要基础,就按照你的想法一步一步去做就行了。但是,并不是说就此止步了,之所以还有面向对象的出现,就是因为面向过程已经不能满足实际的需要了。随着软件规模的不断扩大,业务和逻辑变得越来越复杂,面向过程已经应付不了了,所以才有了面向对象的诞生。从面向过程过渡到面向对象是我们必经的一个过程,这不仅仅是设计方法的提升,更是思想的提高。




分享到:
评论

相关推荐

    软考-软件设计师学习文档(应用技术)总结.pdf

    在准备软考——软件设计师的考试过程中,理解并掌握应用技术是非常关键的。本文档重点总结了应用技术领域的一些核心知识点,包括结构化设计方法、数据库设计步骤以及面向对象设计中的关系。 首先,结构化设计方法是...

    软考中级软件设计师历年真题.zip

    6. **程序设计语言**:对至少一种高级程序设计语言有深入理解,包括语法特性、异常处理、面向对象编程等。 7. **软件项目管理**:掌握项目管理的基本知识,如项目计划、风险管理、质量管理、配置管理等。 8. **...

    软件设计师2000年~2010年真题答案

    例如,2004年上、下半年的试题,可能重点考察了当时热门的技术趋势,如面向对象设计原则、UML建模语言等;2006年的试题可能涉及软件质量保证与测试,强调了软件生命周期中的质量管理;2008年和2010年的题目可能涵盖...

    软件设计师个人学习笔记

    此外,可能还涉及到各种编程范式,如过程式、面向对象和函数式编程等。 第三章 操作系统 操作系统是管理和控制计算机硬件与软件资源的系统软件。在这一章,重点讲解了进程管理,包括进程的概念,以及同步与通信的...

    2024-高项第四版速记词——51CTO软考内部资料_1-3.pdf

    - **系统运行与维护**:部署系统并在运行过程中对其进行持续的监控和维护。 ### 3. 信息化内涵 - **信息网络体系**:包括信息资源、信息系统和通信平台等构成的网络。 - **信息产业基础**:涵盖科研开发、装备制造...

    2015-2019(上)软件设计师真题及详解.zip

    6. **软件设计与架构**:模块化设计、面向对象编程、设计模式等,帮助构建可扩展、可维护的软件系统。 7. **软件测试与维护**:测试方法、自动化测试工具、软件维护策略等,确保软件的稳定性和可靠性。 8. **法律...

    软件工程师考试冲刺指南

    了解面向对象的设计原则和设计模式,如单一职责原则、开闭原则、工厂模式、观察者模式等;对于数据库设计,理解ER模型,能够进行数据库表的规范化设计,并编写SQL脚本实现数据操作。 此外,考生还需要关注软件开发...

    2012上半年软考网络工程师 上午试题

    面向对象编程中的类继承允许子类继承父类的属性和方法。在继承类中可以增加新方法、覆盖父类的方法等。但是,不能定义与父类方法同名的方法(除非使用覆盖机制)。因此,错误的选项是C——在继承类中不能定义与被...

    2018年上半年 软件设计师题 答案

    动态绑定 —— 错误,动态绑定是面向对象编程中的概念,与中断处理无关; - **D**. 静态绑定 —— 错误,静态绑定同样是面向对象编程的概念,与中断处理无关。 **保存现场的目的**: - **A**. 防止丢失数据 —— ...

    计算机软考高级真题2013年上半年 系统分析师 详细答案.docx

    - **题目背景**:该题旨在测试考生对于面向对象设计中类之间的几种关键关系的理解。 - **核心知识点**: - **聚合关系**:表示类之间的一种“整体-部分”关系,部分可以独立存在于多个整体之外。 - **依赖关系**:...

    基于OOP 和AOP的软件产品线实现技术研

    面向对象编程(Object-Oriented Programming, OOP)是一种广泛采用的软件开发范式,它通过封装、继承和多态等机制支持软件复用和模块化设计。在软件产品线中,OOP为实现可变性和复用提供了基础框架: 1. **封装**:...

    2021-2022计算机二级等级考试试题及答案No.17654.docx

    这一知识点涉及到计算机历史的重要节点,1946年美国宾夕法尼亚大学研发了世界上第一台通用电子计算机——ENIAC(Electronic Numerical Integrator And Computer),标志着计算机科学的新纪元。 ### 2. 关系操作的...

    2022年上半年系统规划与管理师《综合知识》真题及答案【完整版】.docx

    面向对象是一种编程范式,其核心思想是将程序设计围绕对象来进行。 **解析:**选项A中的描述是正确的,对象由一组属性和对这组属性进行的操作构成;选项B中的描述是正确的,封装是将实体的属性和操作组合在一起;...

Global site tag (gtag.js) - Google Analytics