层模式

来源:互联网 发布:软件动态测试工具 编辑:程序博客网 时间:2024/05/18 07:20

一个简单例子说明层模式。

#include <iostream>using namespace std;class L1Provider{public:    virtual void L1Service() = 0;};class L2Provider{public:    virtual void L2Service() = 0;    void setLowerLayer(L1Provider *l1) { level1_ = l1; }protected:    L1Provider *level1_;};class L3Provider{public:    virtual void L3Service() = 0;    void setLowerLayer(L2Provider *l2) { level2_ = l2; }protected:    L2Provider *level2_;};class DataLink : public L1Provider{public:    virtual void L1Service() {        cout << "L1 Service working. " << endl;    }};class Transport : public L2Provider{public:    virtual void L2Service() {        cout << "L2 Service working. " << endl;        level1_->L1Service();    }   };class Session : public L3Provider{public:    virtual void L3Service() {        cout << "L3 Service working. " << endl;        level2_->L2Service();    }};int main(int argc, char **argv){    DataLink dataLink;    Transport transport;    Session session;    // make relationship    transport.setLowerLayer(&dataLink);    session.setLowerLayer(&transport);    // client invoke    session.L3Service();    return 0;}

先定义三个抽象的层接口(L1Provider、L2Provider、L3Provider),再定义三个接口的实现,最后建立层级之间的关系。

原创粉丝点击