本节书摘来自华章出版社《面向对象的思考过程(原书第4版)》一书中的第1章,第1.4节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.4 由面向过程开发过渡到面向对象开发
现在我们对面向过程与面向对象开发技术有了一定的了解。接下来我们继续深入学习。
1.4.1 过程式编程
过程式编程通常会将系统的数据与对数据的操作分离开来。例如,如果你想通过网络发送信息,只发送相关数据(见图1-4),而期望网络管道另一端的程序知道如何处理该数据。换句话说,客户端和服务器端要对数据传输建立起一种握手约定。在该模型中,通过网线传输的只有数据,没有代码。
1.4.2 面向对象编程
面向对象编程的最大优势是数据和对数据的操作(代码)都被封装在一个对象中。例如,当通过网络传输对象时,整个对象(包括里面的数据和行为)都会一起被传输。
单个实体
尽管理论上认为传输了单个实体,但大多数情况下行为本身不会被发送,因为两端都有行为代码的副本。然而,理解以整个对象作为单个实体通过网络传输是相当重要的。
在图1-5中,通过网络传输Employee对象。
恰当的设计
反应恰当的设计的一个好的例子是通过浏览器加载对象。通常,浏览器并不会提前知道对象是干什么的,因为浏览器并未拥有该对象的任何代码。当对象被加载后,浏览器执行对象中的代码,并使用对象中包含的数据。