关于ADT中的AF、RI和Safety from rep exposure


AF:抽象函数(Abstraction Function),是R空间到A空间的一个映射,一定是满射,不一定是单射或双射,因为R空间中可能出现不满足要求的值,它在A空间就没有对应的像。AF一般是ADT作者用精炼的语言描述该ADT类是对什么实际事物的抽象,并可简介这个函数中实现了哪些方法。
RI:表示不变量(Representation Invariant),可以理解为这个ADT对属性的取值的需求。ADT作者可以用RI描述该ADT中属性的特殊取值要求和边界条件。
Safety from rep exposure:防止表示泄露。主要是防止一些mutable的属性被用户随意改动。比如一些getter方法里,创建一个类的某个属性的拷贝并返回,这样用户就不会直接接触到类中的属性,从而提高安全性。ADT作者可以在这部分写出如何保护数据不被篡改的。
为什么要撰写以上内容?
这里可以看出ADT作者是怎么设计的A空间和R空间,以及ADT中属性的合理的值,并且通过随时检查RI是否满足来增加安全性。而Safety from rep exposure是表示泄露的安全声明,证明代码并没有对外泄露其内部表示。

上一篇:Solution -「多校联训」自动机


下一篇:D. Shichikuji and Power Grid(Codeforces Round #597 (Div. 2)题解)