现在做一个解决方案,有如下问题。
有不同的控制协议类型,每种的处理方法不尽相同。因此想到用一个抽象类作父类,然后生成不同的子类,实现父类中的纯虚处理函数。然后在主控程序中做一个管理类,用该抽象类作为一个模板参数,生成一个链表进行访问。现在问题是子类的对象如何处理?是不是无论如何还是要在抽象类中判断出具体的协议,然后再生成不同子类的对象?这样子做的话还不如直接不用抽象类,直接做判断,然后调用不同的方法好了。其实这种思路与STRATRGY设计模式有点像,但我现在不想做多个选择分支,而且生成众多对象要占用多个系统资源。不知我说清楚了问题没?
有那位老兄对此有好的建议,或者直接将类框架提供给我,将不胜感激!
也欢迎大家对此热烈讨论!

解决方案 »

  1.   

    难道诺大的csdn竟然没有人能回答我的问题吗?
      

  2.   

    很简单,协议必须用某种方式标识,否则无法区分,特定协议对应特定派生类,这个映射可以通过类似原型模式(prototype)的方式实现,可以不用硬编码实现,每个派生类向管理器注册一个原型,协议标识设法保证唯一性,来一个协议标识的时候,在注册原型中查找匹配的协议标识,找到就用Clone生成派生类。圆满解决?