作者:Breaker <breaker.zy_AT_gmail>
关于 C++ 类层次结构的设计方法学,note-to-self + keynote + cross-reference 式笔记
本文精炼于 [CPP LANG] 12.4, 15.2 的 BBWindow 示例,只涉及 design
Syntax 参考 [CPP LANG] Ch12, 15; [CPP PRIMER] Ch17, 18
Play with bits 参考 [CPP OBJMODEL] 5.2
keyword: class hierarchy, multiple inheritance, abstract class, virtual base class, abstract factory, clone
示例场景^
IValBox: 取得用户输入整数的 GUI 元素之抽象类,它不绑定具体 GUI 元素,如 slider 滑块, dial 拨盘
IValSlider: 滑块式 IValBox 实现,类似的还有 IValDial 拨盘式实现,代表 IValBox 类层次中具体的 GUI 元素。这些类可以进一步扩展,如从 IValSlider 派生出 PopupIValSlider
BBWindow: 第三方提供的 GUI 元素实现,类似 MFC 的 CWnd 等。IValBox 的类层次依靠 BBWindow 的类层次实现 GUI 特性(画图之类)。BBWindow 只是形式名,它可以替换,其意义就像将 MFC 换成 Qt 一样,这使得 IValBox 的类层次能够减小对特定 GUI 元素实现的依赖
UML: Old Hierarchy