关于依赖注入的blog。对于他们示例中的接口,他们使用struct
使用纯虚方法而不是class
,然后从接口继承为类。
struct IEngine
{
virtual void Start() = 0;
virtual void Stop() = 0;
virtual ~IEngine() = default;
};
class V8Engine : public IEngine
{
void Start() override { /* start the engine */ }
void Stop() override { /* stop the engine */ }
};
我的直觉是将IEngine
界面改为class
。这里的界面使用struct
与class
之间有区别吗?是否会出现您希望使用一个而不是另一个的情况?