220 words
1 minute
scheme-2.1.2
Some information may be outdated
Abstraction Barrier
数据抽象的基本思想就是为每一类数据对象标识出一组操作,使得对这类数据对象的所有操作都可以基于它们的表述,而且在操作这些数据对象时也只使用它们。
- 定义一个新数据 ---> 有理数
- 定义三个接口,make-rat,numer,denom。有关有理数的所有操作都只能用这几个接口来实现,面不能越级使用cons,car,cdr来实现。
---------------- 使用有理数的程序 ----------------
问题域中的有理数---------------- add-rat,sub-rat... -------------
作为分子和分母的有理数---------------- make-rat,numer,denom ------------
作为序对的有理数---------------- cons,car,cdr --------------------- 上层不用知道下层是怎么实现的,直接使用接口拿来用就可以。无论接口的内部怎么改变,对外的接口不变,它的改变完全不会影响上层的应用。
scheme-2.1.2
https://www.infini.cv/posts/scheme/scheme-212/