`

Thinking inUML摘录(一)-面向过程,面向对象

    博客分类:
  • UML
uml 
阅读更多

摘录:

 在很多人看来,面向对象和面向过程都是一种软件技术。例如把面向过程归纳为结构化程序设计,DFD图,ER模型,UC矩阵等,二面向对象则归纳为继承,封装,多肽,复用等具体的技术。事实上,上述的所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具,他们只是表征而不是本征。

UML创始人之一Grady Booch说过:我对面向对象编程的目标重来不是复用(注意:复用是一种技术),相反,对我来说,对象提供了一种处理复杂性问题的方式,这才是面向对象编程运动的真正胜利。

所以不管是面向过程还是面向对象都是一种古已有之的认识论,他们之所以流行是因为现实世界的复杂程度问题。认识到这一点,我们应该知道比掌握具体的技术更重要的是掌握认识论所采用的方法和分析过程,只有掌握了方法才能自如地使用工具。

 

面向对象:世界的本质是由对象组成的,平时看上去互相无关的独立对象在不同的驱动力和规则下体现出不同的运动过程,然后这些过程便展现出了我们这个生动的世界。

面向过程:世界的一切都不是孤立的,他们相互紧密联系在一起,缺一不可,相互影响,相互作用,并形成一个个具有严格因果律的小系统;而这些更多的小系统组成更大的系统,所以小系统之间的联系也是紧密他不可分割的。

这里有个知乎的问题,有几个回答还是不错的:

http://www.zhihu.com/question/19701980

总结:

面向对象:谁做,谁和谁配合做。

面向过程:做什么。

面向对象中对象之间互相配合生成不同的过程,二面向过程只是一个个死死的过程。

从这一点看来面向对象更灵活,也更容易扩展。

但也带来了新的问题是:

1.对象从哪里来的?

2.对象之间如何配合才更有效?

 

 

分享到:
评论

相关推荐

    Thinking in C++习题答案

    该书分为两卷,第一卷主要介绍了C++的基础知识,包括面向对象编程的基本概念,而第二卷则更深入地探讨了模板、异常处理、STL等高级主题。在提供的压缩包文件中,我们主要看到的是第一卷的习题解答。 1. **C++基础...

    thinking in java2-3

    本压缩包文件的标题“thinking in java2-3”表明内容涵盖了该书的第二部分,通常包括面向对象编程的深入探讨,可能是类、接口、继承、多态性等主题。 描述中提到“这是这本书的第二部分,下载后根据提示解压”,...

    Thinking in Java -- 4th Edition

    3. **继承与多态**:继承机制是面向对象编程的重要组成部分,它允许创建一个类来继承另一个类的属性和行为。多态性则允许子类对象被当作父类对象来处理,这对于实现灵活的代码设计非常关键。 4. **异常处理**:在...

    thinking in java3-3

    Java是一种面向对象的语言,这意味着你需要理解类、对象、封装、继承和多态等核心概念。在本书的第三部分,可能会详细讨论这些内容: 1. 类与对象:类是Java中的蓝图,定义了数据结构和可以执行的操作。对象是类的...

    Algorithmic Thinking: a problem-based introduction

    《Algorithmic Thinking: a problem-based introduction》是一本旨在通过一系列世界顶级编程竞赛中的实例来教授读者如何解决复杂编程问题以及设计高效算法的专业书籍。本书作者丹尼尔·辛加罗(Daniel Zingaro)是一...

    重温 Thinking in Java 5 - The Class object

    《Thinking in Java》是Bruce Eckel的经典之作,第五版(The Class object)主要探讨的是类对象(Class object)这一核心概念。在Java编程语言中,类对象是与类相关的特殊对象,它提供了对类信息的访问,包括类的元...

    thinking-in-cpp-2.zip

    其中,"thinking"这一词汇强调了本书的核心理念,即鼓励读者以面向对象的思维方式来理解和使用C++。在学习C++的过程中,理解并实践这种思维方式对于提升编程能力至关重要。 第二卷则更加深入,重点讨论了模板、异常...

    thinking in java1-3

    1. **Java简介**:Java是一种面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)开发,具有跨平台、安全性高、性能优秀等特点。Java程序通常通过编译成字节码运行在Java虚拟机(JVM)上。 ...

    Thinking in Java4-课程代码code

    1. **面向对象编程基础**:Java是一种面向对象的语言,代码中将展示类的定义、对象的创建与使用、封装、继承和多态等概念。通过实例,你可以看到如何设计类以及如何通过对象来操作数据。 2. **封装**:封装是将数据...

    Thinking Architecturally.docx

    Thinking Architecturally是一本由Nathaniel Schutta所著的关于软件架构的书籍,该书籍旨在帮助架构师和开发者更好地思考架构设计,并作出明智的技术决策。以下是对该书籍的详细摘要: 首先,书籍的前言部分提到了...

    Thinking-in-Java-4th-Edition习题答案

    总的来说,这份“Thinking-in-Java-4th-Edition习题答案”涵盖了Java编程的广泛领域,从基本语法到高级特性,从理论到实践,是提高Java技能的宝贵资源。通过解决这些习题,你不仅可以巩固所学知识,还能锻炼解决问题...

    Thinking-in-Patterns-with-Java.zip_in

    《Thinking in Patterns with Java》是一本深度探讨Java编程思想与设计模式的经典著作,旨在帮助开发者理解和运用各种设计模式,从而提升软件开发的效率和质量。这本书深入浅出地讲解了如何在Java环境中实现和应用...

    thinking-in-java

    1. **面向对象编程**: - 封装、继承、多态的概念及其在Java中的实现。 - 类的设计原则,如单一职责原则、开放封闭原则等。 2. **基本语法与控制结构**: - 变量声明、数据类型、运算符等基础知识。 - 条件语句...

    Write Great Code- thinking low-level & writing High-Level

    Write Great Code- thinking low-level & writing High-Level, the best practice in programming.

    《Thinking in C++》pdf电子版

    C++是一种强大的、通用的编程语言,它在继承了C语言的高效和灵活性的同时,引入了面向对象编程(OOP)的概念,如类、对象、封装、继承、多态等。《Thinking in C++》不仅覆盖了这些基本概念,还深入探讨了模板、STL...

    C++编程思想-Thinking in C++ 11

    C++编程思想-Thinking in C++

    javathinking-sample2-type1-batch-acceptance

    标题“javathinking-sample2-type1-batch-acceptance”暗示了一个Java相关的项目,它可能是一个批量处理或批处理的应用程序。批处理是处理大量数据或执行一系列操作而不需用户交互的一种方法,常用于大数据处理、...

Global site tag (gtag.js) - Google Analytics