码迷,mamicode.com
首页 > 其他好文 > 详细

ADT

时间:2018-06-16 20:35:12      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:更改   复杂   就是   adt   特殊情况   多模块   通过   未来   分离   

这?列出了?个能够表达ADT思想的词:

  • 抽象: 忽略底层的细节?在?层思考
  • 模块化:将系统分为?个模块,每个模块可以单独的进?设计、实现、测试、推倒,并且在剩下的开发中进 ?复?。
  • 封装:在模块的外部建?起?道“围墙”,使它只对??内部的?为负责,并且系统别处的bug不会影响到它内 部的正确性。
  • 信息隐藏:将模块的实现细节隐藏,使未来更改模块内部时不必改变外部代码。
  • 功能分离:?个模块仅仅负责?个特性/功能,?不是将?个特性运?在很多模块上或?个模块拥有很多特性。

 

抽象数据类型(ADT)是通过它们对应的操作区分的。

  • 操作可以分类为创建者、?产者、观察者、改造者。
  1. creator 创作该类型的新对象,creator可以将对象作为参数,但不是正在构建类型的对象
  2. producer 从该类型旧对象中产生新对象,String的Concat方法是一个producer
  3. observers 采用ADT对象并返回不同类型 eg:List中的Size()
  4. Mututors 改变对象 eg:List中的add()
  • ADT的标识由它的操作集合和规格说明组成。
  • ?个好的ADT应该是简单,逻辑明确并且表?独?的。
  • 对于ADT的测试应该对每?个操作进?测试,并同时利?到创建者、?产者、观察者、改造者。

 

设计?个抽象类型包括选择合适的操作以及它们对应的?为。

  • 设计少量,简单,可以组合实现强?功能的操作??设计很多复杂的操作。
  • 每个操作都应该有?个被明确定义的?的,并且应该设计为对不同的数据结构有?致的?为,?不是针对某些特殊情况。
  • 操作集合应该充分地考虑到?户的需求,也就是说,?户可以?这个操作集合做他们可能想做的计算。
  • 抽象类型可以是通?的:例如,列表、集合,或者图。

ADT

标签:更改   复杂   就是   adt   特殊情况   多模块   通过   未来   分离   

原文地址:https://www.cnblogs.com/L160300101/p/9191230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!