我使用过一个简单的后台服务框架.这个框架上手很容易,我只需要继承一个基类,同时实现,或重写(override)基类声明的几个接口(这些接口声明为虚函数,或者纯虚函数),然后调用基类定义好的run()函数,便可以将框架代码运行起来.run函数做的事情,是依序调用上述的几个接口:
class Service {public :int run(){ // .... step1(); // 收包 , 解包 step2(); // 业务逻辑处理 step3(); // 回包 step4(); //资源释放 //.... }protected:virtual int step1(){// 收包,解包逻辑实现//...}virtual int step3(){// 回包逻辑实现//...}virtual int step4(){//资源释放//...}virtual int step2() =0 ; //纯虚函数,派生类实现}
其中收包,解包,回包,释放资源等动作,框架会提供一份实现,由于我们有时候会采用其他的数据协议,所以基类也将收包回包等函数声明为虚函数,允许我们针对新的协议进行函数的重写(override).而对于业务逻辑处理函数,也就是step2,框架无法为我们实现,我们需要根据具体的业务需求来实现该函数,在派生类中来实现step2函数:
class MyService : public Service{int step2(){// 具体业务逻辑的实现} }
派生类实现了step2函数后,通过调用run函数来运行程序:
网友评论