【发布时间】:2015-06-08 20:30:08
【问题描述】:
我有一个具有 3 种状态的状态设计模式实现:
State1::DoTask(){...}
State2::DoTask(){...}
State3::DoTask(){...}
这 3 个状态都需要使用 2 个已经实例化的类
例如
State1::DoTask()
{
sensor->GetData(...)
server->Send(buf,size)
}
将这 2 个类指针对象传递给 State1、State2 和 State3 的最佳方法是什么?
我想到了两种选择:
1) Sensor 和 Server 类可以是单例:
State1::DoTask()
{
sensor = Sensor::GetInstance();
server = Server::GetInstance();
....
}
2) 使用其他对象持有类指针传递:
class ComClasses
{
Sensor *sensor;
Server *server;
}
State1::DoTask(ComClasses *c)
{
....
}
在您看来,最好的方法是什么?有没有更好的解决方案?
最好的问候,
【问题讨论】:
-
为什么不将指针作为参数传递给
DoTask?为什么不用引用而不是指针? -
是的,它可以作为参考。但这并不能解决答案。谢谢
-
您问是否有更好的解决方案,如果指针永远不应为空,则引用是更好的解决方案。也就是说,我没有给出建议作为答案,而是发表评论。您是否考虑按照我的建议将引用作为参数传递给
DoTask?
标签: c++ design-patterns