5.5.2 用访问控制来修改Stack
对于第二个例子,我们把Stack改写成一个类。现在嵌套的数据结构是private。这样做的好处是可以确保客户程序员既看不到,也不依赖于Stack的内部表示:
与上例一样,实现部分不需要改动,这里不再赘述。测试部分也一样,惟一改动了的地方是类的接口部分的健壮性。访问控制的真正价值体现在开发阶段中的防止越界。事实上,只有编译器知道类成员的保护级别,与成员关联的这些访问控制信息并没有被传递给连接器。所有的访问保护检查都是由编译器来完成的,在运行期间不再检查。
注意面向客户程序员的接口部分现在是一个压入式堆栈。它是用一个链表结构实现的,但可以换成其他的形式,而不会影响客户程序员处理问题,更重要的是,不需要改动客户程序员的代码。