我有一个类MyClass
,它拥有某个类的实例,DataProvider
并为此有一个 getter。
为了依赖注入,我更喜欢有一个getter和一个setter。此外,DataProvider
应该包含在一个std::unique_pointer
:
#include <memory>
#include <iostream>
class DataProvider
{
public:
DataProvider() {}
virtual ~DataProvider() {}
/* stuff */
private:
/* more stuff */
};
class MyClass
{
public:
MyClass() {}
virtual inline const DataProvider &getDataProvider() const
{
return *data;
}
void setDataProvider(std::unique_ptr<DataProvider> newData)
{
data = std::move(newData);
}
private:
std::unique_ptr<DataProvider> data;
};
我读过这个:如何将 unique_ptr 参数传递给构造函数或函数?
但它不包括吸气剂部分。这是(以上)正确的方法吗?可以考虑哪些替代方案?