设为首页 加入收藏

TOP

完成C++不能做到的事 - Visitor模式(四)
2015-11-21 01:02:57 来源: 作者: 【 】 浏览:9
Tags:完成 不能 做到 Visitor 模式
r模式该如何进行扩展呢?”我自己问自己。毕竟在企业级应用中,各组成的扩展性可以很大程度上决定 系统的维护性和扩展性。
?
  我注意到上面的Visitor模式实现中主要分为两大类类型:IVehicle和ISales。在该Visitor实现中添加一个新的汽车类型十分容易。从IVehicle派生并实现相应的逻辑即可:
?
1 class Fiat : public IVehicle
2 {
3 public:
4 ? ? virtual double Visit(Sales& sales) { return 0.05; }
5 ? ? virtual double Visit(SalesManager& salesManager) { return 0.06; }
6 };
  但是添加一个实现了ISales接口的类型则非常困难:需要更改所有已知的汽车类型并添加特定于该接口实现类型的重载。
?
  那在遇到两部分组成都需要更改的情况该怎么办呢?经过查找,我也发现了一种允许同时添加两类型的模式:Acyclic Visitor。除此之外,还有一系列相关的模式,如Hierachical Visitor Pattern。看来和Visitor模式相关的各种知识还真是不少呢。
?
  我再次打开搜索引擎,继续我的自我学习之旅。而身边的同事也继续和水果奋斗着。
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode 1 Two Sum 题解 下一篇hdu 1261 字串数 排列组合

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: