我们在对数据进行抽象的时候,基本思想就是为每一类数据对象标识出一组操作,使得对这类数据对象的所有操作都可以基于它们表述,而且在操作这些数据对象时也只使用它们。
在我们面对一个复杂数据对象的时候,它对外提供的各种操作又是基于另一个数据对象的一些操作,这个时候我们就需要在数据抽象的时候构建一个“抽象屏障”,它可以隔离系统中不同的层次,把使用数据抽象的程序与实现数据抽象的程序分开,也就是所谓的面向抽象编程,
举个例子,
我们需要表示一个有理数,很自然想到, 需要一个分子,一个分母,一个构造函数把分子,分母填进去。
public class RationalNumber {
private final int numer;
private final int denom;
public RationalNumber(int numer,int denom) {
this.numer = numer;
this.denom = denom;
}
}
对于外部程序来说,它们根本就不需要知道你的分子,分母,它们需要的是,你能够加、减、乘、除。因此,我们在抽像数据的时候还需要能够提供addRationalNumber,subRationalNumber,mulRationalNumber,divRationalNumber这样的操作.而外部也只能通过有理数暴露的这些API操作有理数。这些API操作转而又完全是基于有理数的构造函数,分子,分母实现,构造函数,分子,分母的实现又基于其底层构造函数,基本类型数据的实现。因此一个有理数的数据可以形成如下的抽象结构
-------------使用有理数的程序----------------------
-------------问题域中的有理数----------------------
-------------作为分子分母的有理数------------------
-------------实现有理数的构造函数,分子,分母---------
这每一层面都是一个抽象屏障,当我们进行了这样的抽象层次分离之后,以后的维护就方便很多了,
分享到:
相关推荐
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download>>>https://github.com/wizardforcel/sicp-py-zh
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版
Python SICP epub版本,很适合学习抽象的思想,用Python版本比lisp更实用
SICP-Python版本
SICP 使用的scheme解释器 以前叫DrScheme
sicp 2.2.4节图形语言的racket程序包,配置路径,C:\Users\Administrator\AppData\Roaming\Racket
SICP 解题集
SICP CHINESE ENGLISH THE SECOND EDITION SICP CHINESE ENGLISH THE SECOND EDITION
SICP 习题答案 计算机程序的构造和解释 1-3章 习题答案
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 download : https://github.com/wizardforcel/sicp-py-zh
SICP习题解答,主要第一章的内容习题答案
资源来自pypi官网。 资源全名:sicp-0.0.1b102.dev4.tar.gz
sicp-in-python(中文版+英文版)PDF 背景. SICP 全称Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》使用python
资源名称:sicp 和 操作系统:精髓与设计原理第七版资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
sicp
#SICP SICP解决方案
经典书籍《计算机程序的构造与解释》,UCB热门课程CS61a的官方教材
Structure and Interpretation of Computer Programs
python book,design pattern in python, a good book