【内容简介】通过若干典型的实例,介绍面向对象设计的基本原理和设计模式。通过解决问题而“获得”设计模式,以掌握设计模式的本质、揭示设计模式之间的内在联系,以期解决学习设计模式的知易行难困境。
(请收藏。最后编辑时间:2021.2.18)
上机题。
三门语言的编程环境 -Pelles c、DrRacket和BlueJ
- 【实验2.框架设计者】
- 【实验4.某种条件作为参数】
- 【实验5 通用累积函数】
- 【实验6:通过God创建对象】
- 【实验7 复合函数-桥接模式】
- 【实验9 表达式问题-访问者和解释器】 Java模拟双分派
第0章 基础
本书讨论面向对象(的软件)设计(Object Orientation Design、OOD),因而需要回答:什么是面向对象或对象抽象,软件设计——不论是命令式语言C、函数式语言Scheme或面向对象语言Java——有什么(共同的)设计理念,OOD又有些什么侧重点(如对象创建、某些设计模式),等等。因此作为本书的开篇,本章说明读者在学习OOD和本书时应该具备的基础,主要包括如下方面。
- 编程语言基础和面向对象。本书选用Java作为例程的实现语言,并以C和Scheme作为Java的对比语言(读者需要初步了解这两门语言),通过3门语言交叉使用可以更方便地认识软件设计的共同设计理念、厘清一些被搞得莫名其妙的概念/术语。在第0.1节,将详细说明对读者编程语言方面的要求,在第0.1节说明什么是面向对象或对象抽象。
- 设计原则。在长期的软件设计实践中,人们总结或归纳出诸多的经验,这些经验被称为设计原则——软件设计时需要遵循的一系列理想化的原则。当希望从“公理化思想”出发构建OOD的完整逻辑体系时,需要设定几个基本原则作为“公理”,将它们作为全书的指导性原则。“公理”将在第0.3节介绍,而更为细节的原则,将分布于各个章节中。
- 第0.4节介绍阅读本书的若干注意事项。
0.1编程语言的掌握
- 0.1.1 编程语言应该学习什么
- 0.1.2 行为抽象 @漫谈顺序、分支和循环
- 0.1.3 数据抽象 @[SICP] 什么是数据抽象
- 0.1.4 对象抽象——PLP 何谓面向对象编程范式(Object Orientation paradigm ) 面向对象编程范式是以柏拉图原则、Liskov原则和Parnas原则(合称PLP-脑图)为基石构建的面向对象范式的逻辑体系。 编程宗派的融合
- 0.1.5命令编程范式 命令式编程范式