C++ 九阴真经之命令控制模式
所谓命令控制模式,就是对应的行为进行封装,通过命令就能控制,你可以理解为linux下指令操作。 比如一个操作包括,A1、A2、.....A10这10步操作,如果某一步失败,那么就进行倒回,如果这10个操作的业务类型各不相同,并且所需要的参数也不尽相同,操作起来就比较困难,如果我能将他们全部封装成指令模式,只通过A1到A10这10个字符串就触发,那么实现起来就容易的多。 对于网络编程,命令控制就变得必不可少了,该模型可以帮你将网络层与业务层完美的管理在一起。 实现约束: 1、每一类业务我需要划分为一个业务入口类,便于统一管理。 2、我有很多类的业务,为了便于扩展,每添加一个业务类,我需要尽量少改动框架内容。 3、我可以将每一个业务入口类的函数定义成一个命令。 4、每一个命令字允许我传入不同的参数列表 基于上述约束,实现起来可能有点困难,所以在此进行梳理一下,分两步进行: 第一步:业务入口类的管理实现 实现原理: 1、模板类静态成员在有调用的情况下,编译器会自动展开。 2、静态成员会在main函数之前进行初始化 3、在每一个业务入口类中,定义一个指定静态函数,在函数中使用模板类,以达到让编译器生成模板类实例的目的; 4、模板类的静态成员初始化为业务类的静态函数地址。 5、静态成员初始化时,让模板类之间形成一个链表 基于以上原理,我们可以实现一个如下图所示的,父类与子类的关系: 第二步