《数据结构与抽象:Java语言描述(原书第4版)》一2.1.2 一组核心方法
本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第2章 ,第2.1.2节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 着 罗得岛大学 新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.1.2 一组核心方法
基于Java语言数组实现的ADT包吸收了教室示例中展现的一些想法。由此得到了类ArrayBag,它实现了在程序清单1-1中见到过的接口BagInterface。接口中的每个公有方法对应于ADT包的一个操作。我们记得,接口为包中的对象定义了泛型T。我们在ArrayBag的定义中也用到了这个泛型。
类ArrayBag的定义可能相当难懂。该类确实有不少的方法。对于这样的类,你不应该定义整个类,然后试图去测试它。而是应该先确定一组核心方法(core method)来实现并测试这些方法,然后再继续定义类中的其他部分。将其他方法的定义留待稍后解决,可以集中注意力,并简化你的任务。但哪些方法应该属于这组核心方法呢?一般地,这样的方法应该是类的重要目的,且允许合理的测试。有时称一组核心方法为核心组(core group)。
当处理包这样的集合时,在集合创建之前尚不能测试大多数的方法。所以,将对象添加到集合中就是一个基本操作。如果方法add没能正确工作,测试像remove这样的方法将是毫无意义的。所以,包的add方法是我们首先要实现的核心方法组的一部分。
为测试add是否能正确工作,需要一个能让我们看到包内容的方法。方法toArray可用于这个目的,所以它是一个核心方法。构造方法也是基本的,并在核心组内。类似地,核心方法可能调用的任何方法也是核心组的一部分。例如,因为我们不能将项添加到满包中,所以方法add通过调用私有方法isArrayFull来发现一个满数组。
核心方法。我们已经确定下列核心方法属于类ArrayBag的初稿部分:
构造方法
有了这些核心方法,我们能构造一个包、向其中添加对象、查看结果。在这些核心方法能正确工作之前,我们先不实现其余的方法。
注:像add和remove这样能改变集合底层结构的方法,可能是与实现最紧密的方法。一般地,这类方法的定义应该先于类中的其他方法。但因为在add正确之前我们不能测试remove,所以我们将remove的实现延到add完成且进行充分测试之后再进行。
程序设计技巧:当定义一个类时,实现并测试一组核心方法。从向对象集合添加对象及与之相关的方法开始。
最后更新:2017-06-26 16:33:28