抽象数据类型ADT
2017-04-20 本文已影响0人
winyang
抽象数据类型ADT是指一些数据以及对这些数据所进行的操作的集合。这些操作可以描述数据是怎么样的也可以允许程序通过这些操作去修改这些数据。
不要让ADT依赖于其存储介质,尽量让类和访问子程序的的名字与存储数据的方式无关,并且只提及抽象数据类型本身。
类的接口应该展现一致的抽象层次!
在考虑类的时候,把类看作一种抽象数据类型的机制。每一个类应该实现一个ADT,并且只实现这个ADT,如果你发现某个类实现了不止一个ADT,或者你不能确定究竟实现了何种ADT,你就应该把这个类重新组织为一个或多个更加明确的ADT。
一致抽象层次:
void AddEmployee();
void RemoveEMployee();
Employee NextEmployee();
Employee FirstEmployee();
EMployee LastEmployee();
其余一切和Employee不在一个层次上的东西都应该被屏蔽掉!
提供成对的服务,大多数操作都是和其对应的,相等的以及相反的操作。在设计一个类的的时候,要检查每个公用子程序,决定是否需要另一个与其互补的操作。不要盲目的创建相反操作,但是你一定要考虑,是否需要它!
把不相关的信息转移到其他类中!当某个类的一半子程序在使用该类的一半数据,而另一半子程序则使用另一半数据,尝试把他们分开!
警惕超过约7个数据成员的类:人们在做其他事情的时候能记住的离散项目的个数是5-9个,如果一个类包含超过7个数据成员,考虑一下是否需要分解为更小的类,如果类型都是基本类型,那么可以使用上限考虑,如果是复杂对象的话,那就按照下限来考虑。