例如,我正在使用命令模式并将命令添加到队列中。队列中的条目是 CommandItems,它就像一个简单的结构,包含命令对象和执行命令的时间。
struct CommandItem
{
time_t theTime;
std::shared_ptr<Command> command;
...
// comparison operator implemented
}
std::priority_queue<CommandItem> commandQueue_;
如果我想在不同的时间两次执行相同的命令,这样队列中的命令会有两个 CommandItems,我是否需要构造两个单独的命令对象?或者我可以将相同的命令对象放入两次吗?优点缺点?
(注意使用shared_ptr命令对象,队列需要保存各种子类的命令对象)