fishGUI:迭代器模式一------单链表和双链表的设计
来源:互联网 发布:农村淘宝合伙人面试题 编辑:程序博客网 时间:2024/05/14 04:30
问题:
屏幕类和窗口类都能容纳其他的对象,因此在面向对象设计阶段为它们设计了一个公共的基类---容器类。这样如果要实现保存多个对象的机制可以在容器类中直接使用双向链表,代码的复用性就大幅提高了。但是如何具体地实现这种方案,并且尽可能复合面向对象原则并且可复用性最大化?
实现方案一:
问题:管理链表的数据结构分散在两个类中而且还要通过共有数据成员的方式把一个类中的内部信息暴露给另一给类,违反了面向对象的封装原则;有可能需要实现的是单项链表而不是双向链表
实现方案二:模仿STL中的链表
双向链表的设计:
个人感觉在类FG_BList——Node中使用指针保存对象不是很通用的做法,因为如果程序员需要的时候,可以直接传递类的指针形式,但是考虑作者实现的具体环境也是可以的
链表类并不能假定这些指针所指对象的控件分配方式,所以它只负责维护链表结构并在其中保管对象指针而不负责对象空间的创建和释放,相关的创建和删除操作应该由使用链表的客户类负责
单项链表的设计:
问题:想通用的find,print等对链表操作的算法在双向和单向链表中都有定义,但是这些算法的实现基本相同,唯一的差别只在于遍历链表时的具体操作
接下一篇迭代器的设计
0 0
- fishGUI:迭代器模式一------单链表和双链表的设计
- FishGUI:迭代器设计模式二-----迭代器模式
- fishGUI:复合模式
- Java设计模式(一)设计模式的原则、工厂方法和抽象工厂
- 设计模式(一) 有关Proxy模式和Bridge模式
- 设计模式和原则:原则篇(一)
- 设计模式(一)设计模式中类的关系
- 设计模式(一)设计模式遵循的七大原则
- 设计模式(一)设计模式遵循的七大原则
- 设计模式之Iterator(迭代器)的设计和使用
- 设计模式-----迭代器模式和组合模式
- 调侃《Head First设计模式》之迭代器和组合模式(一)
- 设计模式: 自己手动写一适配器和外观模式
- Webservice 的设计和模式
- Webservice 的设计和模式
- Webservice 的设计和模式
- Webservice 的设计和模式
- Webservice 的设计和模式
- 数据库课程设计再续
- 关于Quicklook 以及 QLPreviewController
- 18Getting a Result from an Activity
- poj1011 Sticks(搜索剪枝)
- error C4430: 缺少类型说明符 - 假定为 int
- fishGUI:迭代器模式一------单链表和双链表的设计
- 基于kubernetes构建Docker集群管理详解 不指定
- Ambari系列(二):编译安装Ambari
- Ubuntu环境下Webbench的应用
- 编译原理 FIRST集和FOLLOW集的求法
- error C2065的解决办法
- 如何自定义destoon的地址生成规则
- 再进行修正; 泊车技巧六:若车位面积刚够容纳车子
- 第一章 工欲善其事 必先利其器—Android SDK工具(6)