Skip to Main Content
面向对象的思考过程(原书第5版)
book

面向对象的思考过程(原书第5版)

by 马特 魏斯费尔德
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
4h 46m
Chinese
Pearson
Content preview from 面向对象的思考过程(原书第5版)

1.3 过程式编程与面向对象编程对比

在我们深入了解面向对象开发的优势之前,先考虑一个更基本的问题:究竟什么是对象?这既是一个复杂的问题,也是一个简单的问题。复杂是因为学习任何一种软件开发方法论都非易事,简单是因为人们已经在按对象的方式进行思考。

Tip

在面向对象大师Robert Martin的一个YouTube演讲视频中,他提到“人们按照对象的方式思考”这种说法是市场销售人员杜撰的。这一点引人深思。

例如,当你看到一个人,你会把他看作一个对象。一个对象由两部分组成:属性及行为。人具有属性,比如眼睛颜色、年龄、身高等。人也具有行为,比如行走、说话、呼吸等。对象的基本定义是一个包含了数据和行为的实体。前面的“和”是面向对象编程与其他编程方法论的核心区别。例如,在过程式编程中,代码放置在完全不同的函数或程序中。在如图1.1所示的理想情况下,程序即为“黑盒”(black box),接收输入,然后输出。数据放置在单独的结构中,通过函数或程序进行操作。

图1.1 黑盒

面向对象与过程式编程的不同之处

在面向对象设计中,属性及行为包含在单个对象中,而在过程式或结构式设计中,属性和行为通常是分开的。

虽然面向对象设计越来越流行,但有个现实问题最初阻碍了面向对象设计的推广,那就是很多非面向对象的系统还在正常工作。因此,没有任何商业动力来将其改造为面向对象的系统。任何熟悉计算机系统的人都知道,不管对系统的修改有多小,都极可能引发灾难性的后果。

接受面向对象的数据库也存在相同的问题。随着面向对象开发方式的发展,貌似面向对象的数据库将替代关系型数据库。然而,这绝不会发生。关系型数据库得到了大量的商业投资,而现有的关系型数据库可以正常工作,这一重要因素阻碍了向面向对象的数据库的转换。将关系型数据库转换为面向对象的数据库花销巨大又充满风险,因此没有一个足够令人信服的理由来支持转换。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Node与Express开发(第2版)

Node与Express开发(第2版)

Ethan Brown
Java并发编程实战

Java并发编程实战

Brian Goetz, Tim Peierls
计算机科学导论:跨学科方法

计算机科学导论:跨学科方法

罗伯特 塞奇威克, 凯文 韦恩
Istio 学习指南

Istio 学习指南

Lee Calcote, Zack Butcher

Publisher Resources

ISBN: 9787111684527