policy和policy class 一

来源:互联网 发布:linux java安装目录 编辑:程序博客网 时间:2024/06/13 14:18

在linux系统的设计过程中,策略和机制分离是很重要的设计准则。策略是设计,机制是实现。在C++中,policy用来定义一个class或则class template的接口,而policy定义的接口一般是成员函数。例如我们定义一个policy,它是一个带有型别T的class template,它提供一个成员函数create,返回一个指针指向T。这只是一个策略,那实现这个策略的机制有很多,使用new,还是C的malloc加定位new,还是你自己的分配器。然后我们可以根据这个policy产生很多的实做class,这些叫做policy classes。

template <typename T>class OpNewCreat{public:    T* create() {        return new T();    }};template <typename T>class MallocCreat{public:    T* create() {        void *p = malloc(sizeof(T));        return new(p) T();    }};
policy是在编译期为设计做导向,是基于语法。它只是说类有个create成员函数,不需要实做它。



0 0
原创粉丝点击