第一章 翻译结束

This commit is contained in:
LingCoder
2019-01-01 16:28:07 +08:00
parent b420ca99ba
commit 3207cca9fc

View File

@@ -14,7 +14,7 @@
## 抽象
所有编程语言都提供一种“抽象”的方法。从某种程度上来说解决问题的复杂性与抽象的种类和质量直接相关。这里的“种类”意思是你准备对什么进行抽象汇编语言是对机器底层的一种少量抽象。后来的许多“命令式”语言如FORTRANBASIC 和 C是对汇编语言的一种抽象。与汇编语言相比这些语言已有了长足的进步但它们的抽象原理依然要求我们着重考虑计算机的结构而非问题本身的结构。
所有编程语言都提供一种“抽象”的方法。从某种程度上来说,解决问题的复杂性与抽象的种类和质量直接相关。这里的“种类”意思是:你准备对什么进行抽象?汇编语言是对机器底层的一种少量抽象。后来的许多“命令式”语言(如 FORTRANBASIC 和 C是对汇编语言的一种抽象。与汇编语言相比这些语言已有了长足的进步但它们的抽象原理依然要求我们着重考虑计算机的结构而非问题本身的结构。
在机器模型(“解决方案空间”)与实际解决的问题模型(“问题空间”)之间,程序员必须建立起一种关联。这个过程要求人们付出较大的精力,而且由于它脱离了编程语言本身的范围,造成程序代码很难编写,而且要花较大的代价进行维护。由此造成的副作用便是一门完善的“编程方法”学科。
@@ -295,6 +295,11 @@ Java 的异常处理机制在编程语言中脱颖而出。在 Java 中,异常
## 本章小结
面向过程程序包含数据定义和函数调用。要找到程序的意图你必须要在脑中建立一个模型弄清函数调用和更底层的概念。这些程序往往容易混淆因为表达式的术语更多地面向计算机而不是我们要解决的问题。这就是我们在设计程序时需要中间表示的原因。OOP 在面向过程编程的基础上增加了许多新的概念,所以有人会认为使用 Java 来编程会比同等的面向过程编程要更复杂。在这里,我想给大家一个惊喜:通常按照 Java 规范编写的程序会比面向过程程序更容易被理解。
你看到的是对象的概念,这些概念是站在“问题空间”的(而不是站在计算机角度的“解决方案空间”),以及发送给对象以指示该空间中的活动的信息。面向对象编程的一个优点是:设计良好的 Java 程序代码更容易被人阅读理解。由于 Java 类库的复用性,通常程序要写的代码也会少得多。
OOP 和 Java 不一定适合每个人。评估自己的需求以及与现有方案作比较是很重要的。请充分考虑后再决定是不是选择 Java。如果在可预见的未来Java 并不能很好的满足你的特定需求,那么你应该去寻找其他替代方案(特别是,我推荐看 Python。如果你依然选择 Java 作为你的开发语言,我希望你至少应该清楚你选择的是什么,以及为什么选择这个方向。
<!-- 分页 -->
<div style="page-break-after: always;"></div>