《面向对象的思考过程(原书第4版)》一1.2 对象及遗留系统

简介:

本节书摘来自华章出版社《面向对象的思考过程(原书第4版)》一书中的第1章,第1.2节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著

黄博文 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 对象及遗留系统

在面向对象成为主流之前,开发人员面临的问题一直就是如何将新的面向对象技术与现有的系统集成起来。面向对象与结构化(或命令式)编程之间拥有明显的界限,而结构化编程当时则是主流的开发范式。而我始终反对面向对象和结构化编程是不兼容的这一观点,因为我认为面向对象与结构化编程绝不是互斥的。它们是互补的,因为对象可以与结构化代码很好地集成。直到现在我还经常听到这样的问题:你是一个面向过程的程序员还是面向对象的程序员?我会毫不犹豫地说:“我都是。”
同样,面向对象的代码并不意味着完全替代结构式代码。很多非面向对象的遗留系统(即现存的较老的系统)仍在正常工作,所以为什么要冒着潜在的风险来替换它们?大多数情况下,你不应当替换它们,至少不应当使用这样的理由。使用非面向对象的代码编程并不存在本质上的错误。然而,新一代开发者则会倾向考虑使用面向对象技术(有些情况下也只能这样做)。
过去的20年间,面向对象的开发领域一直在平稳显著地增长,全球社会对网络(比如互联网及移动基础设施)的依赖有力地帮助了面向对象技术飞速发展,甚至成为业界主流。浏览器与移动应用之间的海量交易开辟了全新的市场。在这个市场中很多软件都是全新的,几乎未受到遗留系统的影响。即使需要与遗留系统打交道,也可以使用包装对象将遗留系统包装起来。
包装对象
包装对象是指在面向对象的类中包含其他代码。例如,你可以将结构化代码(比如循环和条件)包装到一个对象内部,使其行为就像对象一样。你也可以使用包装对象来封装特性,比如安全特性、不可移植的硬件特性等。第6章讲述了如何包装结构化代码。
如今,软件开发最有趣的领域之一是遗留代码与移动及Web系统的集成。大部分情况下,一个移动Web前端最终会连接到大型机中的数据。市场对既拥有大型机开发经验又同时拥有移动Web开发经验的开发人员的需求量非常大。
我们在日常生活中有大量使用对象的经历,甚至有时候自己都没意识到在使用对象。当你打电话、使用你的家庭财务系统、玩电脑游戏(以及很多其他情况)时,这都是使用对象的经历。电子高速公路本质上已经成为基于对象的高速公路。随着业务越来越多地使用移动网络,这些业务也越来越多地使用对象,因为电子商务所用技术大多都是面向对象的。
移动网络
无需置疑,互联网的出现为面向对象技术的推广起到了极大的推动作用。这是因为在网络中很适合使用对象。尽管互联网是这场变革的领导者,而移动网络也加入进来并扮演着重要的角色。本书中,术语移动网络(mobile web)适用于移动应用开发和Web开发的上下文中。术语混合应用(hybrid app)则用于呈现在Web设备和移动设备的浏览器中的应用程序。

相关文章
|
11月前
|
存储 安全 Java
基础一:一切都是对象
基础一:一切都是对象
70 0
|
存储 负载均衡 Oracle
面向(过程、对象、组件、服务)编程
面向(过程、对象、组件、服务)编程
246 0
|
关系型数据库 数据库
重构老系统遗留代码的一些方法学习笔记
重构老系统遗留代码的一些方法学习笔记
111 0
重构老系统遗留代码的一些方法学习笔记
|
JavaScript 前端开发 C++
《编程原本 》一1.6 规范过程
本节书摘来自华章出版社《编程原本 》一书中的第1章,第1.6节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看
860 0
《面向对象的思考过程(原书第4版)》一2.2 使用抽象思维设计接口
面向对象编程的主要优势之一是可以重用类。通常可以重用的类比具体的类的接口更加抽象。具体的接口可以是非常明确的,而抽象接口则更通用。简单来说,高层次的抽象接口比高度具体的接口更有用,大部分情况下如此,当然并非适用于所有情况。
1221 0
《面向对象的思考过程(原书第4版)》一1.5 究竟什么是对象
对象是面向对象程序中的基础材料。使用面向对象技术的程序本质上是对象的集合。举例来说,一个公司系统包含了代表公司雇员的对象。接下来的小节描述了这些对象的数据和行为。
1025 0
《面向对象的思考过程(原书第4版)》一3.6 对象操作
当处理复杂的数据结构和对象时,编程中的很多最基本的操作会变得越来越复杂。例如,当你想复制或比较原始数据类型时,过程非常简单。然而,复制和比较对象则并不简单。《Effective C++》第34页中,Scott Meyers专门花了整个小节来讲述复制和分配对象。
1044 0