课上学习与查阅资料时讲述AF RI 与Safety from rep exposure的撰写有些地方过于抽象,着重于映射关系,看完很容易一头雾水,依旧不知道怎么写才好,这里写一下我对于其撰写的理解。
Abstraction function(抽象函数):
关键在“抽象”,用精炼的语言描述你的这个类是对什么实际事物的抽象,并可简介这个函数中实现了哪些方法,让人能知道这个函数是干什么的。
Representation invariant(表示不变量):
在该类中你定义了哪些变量(即域(field),非临时变量),这些变量的取值有哪些特殊要求和边界条件。
Safety from rep exposure(防止表示泄露):
写你是如何保护immutable的数据不被篡改的(即那些private final类型的量),一般使用防御式拷贝来保护(创造一个值相同的新的变量并返回)。