ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RI和AF

2021-07-07 22:00:32  阅读:201  来源: 互联网

标签:表示 ADT AF 对象 抽象 类型 RI


        抽象数据类型(ADT)是强调操作的一种数据类型,用户程序员无需关心抽象数据类型的内部实现。ADT分为可变的(mutable)和不可变的(immutable),二者都在方法中都可以存在构造器(Creators)、生产器(Producers)和观察器(Observers),唯一的区别在于不可变的类型没有变值器(Mutators)以改变对象属性,而可变的类型允许存在变值器对域进行修改。

creator:创建一个全新的对象
producer:产生一个和当前类型一样的对象(从类型的旧对象创建新对象)
observer:获取抽象类型的对象并返回不同类型
mutator:改变对象属性的方法

        表示独立性(Rep Independence)指的是client使用ADT时无需考虑其内部如何实现,ADT内部表示的变化不应影响外部spec和客户端。表示独立性是一种性质,保证了ADT的内部表示和用户是区分开来的,除非rep说明了具体的前置条件和后置条件,用户是不允许修改ADT的内部表示的,即使rep说明了条件,也表示不变性(RI)和抽象函数(AF)。

        表示空间(R)和抽象值空间(A):表示空间包含ADT的表示方法所能够表示的所有值,例如当一个域为字符串类型时,那么它的表示空间就是所有的字符串。抽象值空间包含所有用户看到和使用的值,是用户真正关心的地方,例如,我们用字符串中的所有字符表示一个字符集合,且字符串中没有重复字符,那么抽象值空间中就是一些由字符构成的集合。

RI(针对Rep的每一个field以及多个fields之间的关系,进行条件限定,要精确)、AF(AF:给出client看到的A值是什么,是对每一个Rep值的“数学运算)、Safety from rep exporsure (给出理由,证明代码并未对外泄露其内部表示——自证清白)写到注释里。
 

标签:表示,ADT,AF,对象,抽象,类型,RI
来源: https://blog.csdn.net/weixin_47044886/article/details/118558246

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有