Modern C++ Design 学习笔记之Policy Based Class Design

本文介绍了C++中的策略模式设计,即Policy Based Class Design,强调其在提高程序库弹性和复用性方面的作用。通过一个灯类的设计示例,展示了如何利用多重继承和模板技术实现策略类,使得特性在编译期间确定,从而实现功能的动态组合。这种方法允许开发者根据需求选择合适的策略,简化代码,提高运行效率。
摘要由CSDN通过智能技术生成
 

版权所有 未经作者允许 不得用于商业用途 转载请附带这第一,二行
http://www.cppblog.com/shenhuafeng/

Modern C++ Design的第一章就是Policy Based Class Design,可见该技术是整个Loki库的设计基础.这种方式的优点是能够增加程序库的弹性和提高复用性.
简单来说就是,一个Policy Based Class由很多基本的Policy来组成的,每个Policy Class代表了该复杂类(相对复杂)类的某些行为或者特性.有点类似于类的继承,当然和类的继承是不同的。
那么Policy Based Class有什么用呢?我们先看下面这个问题。
假如需要设计一个基础库,可能是基于某个特定领域的,那么库的设计者就需要考虑这样的问题,他需要将未来的可能的需求加以分类,抽象出层次,然后运用OO思想,希望能够构造出一个开发的结构,当然其中的component的设计当然是越是灵活越好。
用传统的OO设计思想,可能可以设计出一套非常完善的类库 ,可能包罗万象。当然的对于应用开发人员需要花很多时间去学习这个“包罗万象”的基础类库。而且往往这样的基础库不是通用性不强就是限制条件太多(例如MFC)可以说就是这样一种类型的库。

下面要展示一下运用多重继承以及Templetes来实现的policy class,举一个简单的例子:
假如我们需要发明一个灯,它有不同的种类,有使用不同能源的工作方式以及有不同的操作方式,如果运用

policy based class来设计的话,可能是这样的结构:

 1 templete <
 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值