外观模式 --- 提供统一的入口
外观模式(Facade Pattern):对外部与一个系统的通信通过一个统一的外观角色进行, 为子系统中的一组接口提供一个一致的入口,外观模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
关于设计外观模式的补充说明:
1、系统中只需要一个外观类的实例: 单例化外观类。
2、试图通过外观类为子系统增加新行为的做法是错误的。外观模式的目的是为简化客户端对子系统的使用,是一个沟通渠道。
3、外观模式可以降低客户端跟多个子系统间的耦合度。
4、层次化结构中,外观模式可用于层与层之间的交互,降低层之间的耦合度。
经验案例咀嚼: Qt用 ” 模型-代理-视图 " 实现 " 树控件TreeContrcl " 。
1、用外观模式的思想分析此按例。
1.1) 场景举例:
数据分析项目AnalysisDataPro具有一个树形控件TreeContrcl(这里TreeContrcl就相当于一个小的系统)
1.2) 系统的组成:
TreeContrcl控件系统内,可能会含有 “ 类QAbstractItemModel的自定义子类 “ 、 ” 类QAbstractItemView的自定义子类 " 、“ 类QAbstractItemDelegate的自定义子类 " 、以及 ” 针对真实需求的数据结构类 “ 。
1.3)系统内部业务:
对TreeContrcl控件来讲,鼠标右键弹出菜单、双击进行编辑、项的选择....等等操作场景, 仅仅是 TreeContrcl控件 本身这个系统内部的业务逻辑,与整体软件的其他部分不相干。
1.4) 系统对外业务:
.....2020-08-14待续写