为具有不同参数的同一命令处理多个对象/类型
Handling multiple objects/types for same command with different parameters
这是我的问题陈述:
- 我有一些对象,可以是单个对象,也可以是深度为N的树结构。所以也许我可以有物体A,B,C,D。假设A、B、C是单层对象,而D有3个孩子H、I、J。在H中,I、J、H和I是单个对象,其中J再次有子对象,依此类推
- 所有对象A、B、C、D、H、I、J都有一个行为execute()
- 我有一个不同的类X,所有这些对象都必须使用类X的相同实例的不同方法
- 我如何处理这种情况:
- 一个函数调用为同一级别上以及层次结构下的所有对象执行execute()方法
- 我不必把X的实例化传递给所有的对象
- 每个对象在其execute()方法中做一些不同的工作
除了复合模式,我什么都想不出来,但我担心的是:-我不想将INSTANCE OF X传递给execute()方法参数中的所有对象,但该方法需要相同的INSTANCE OF X。
我假设所有具有execute()方法的对象都有一个公共基类。我会给基类一个静态成员,它存储对X或X本身的引用或指针。然后可以调用base::SetX()或base::GetX()。
(如果这成为一个多线程应用程序,这也将允许您使用基类中的互斥对象来控制对它的访问)。
X听起来像是一个单例,所以根据X的不可变程度,您可能只想将其全局化。
相关文章:
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用对C函数和类对象的外部调用来处理C++头文件
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 使用对象数组对 SFML 进行动画处理
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 使用对象的基类部分模板专用化对对象进行哈希处理::哈希
- C++:处理线程本地对象销毁
- 传递多处理.将对象值为 ctype 函数?
- 我将如何在C++中文件处理对象(存储/导入)
- 使用多线程处理对象数组 - 无效使用 void 表达式错误
- 我如何有boost.python调用一个函数来处理对象
- 使用std::function和std::bind来存储回调并处理对象删除
- 如何编写一个可以处理对象或指针函数调用的模板函数
- 为什么C++操作优先级在处理对象或基元类型++a*b/b--a时不同
- 通过引用、指针或迭代器处理对象的函子
- 设计用于处理对象的管道
- 用c++处理对象
- 在 CPP 中处理对象时出错
- 如何最好地处理对象初始化C++:空构造函数或指针
- C++如何处理对象组合中出现的错误