我有一个正在创建对象的工厂,但我不确定返回这些对象的最佳方法是什么。我可以选择返回unique_ptr<Trigger>
,或者我可以返回由Move构造函数处理的Trigger
。什么是更好的做法?我最好的猜测是Move,因为你保证有一个对象。
class TriggerFactory
{
public:
TriggerFactory();
~TriggerFactory();
Trigger createMyTrigger() const; // Trigger contains a move constructor
};
vs
class TriggerFactory
{
public:
TriggerFactory();
~TriggerFactory();
unique_ptr<Trigger> createMyTrigger() const;
};
答案 0 :(得分:-1)
工厂模式通常用于多态:Factory将返回某种抽象类型的特定具体类型。在这种情况下,必须返回指向堆分配实例的指针(否则返回值将被切片)。