是否应该使用接口中未说明的方法



我正试图理解SOLID原则,似乎接口不一定会阻止创建或使用接口中未说明的方法。那么问题是,你应该使用实现带来的额外方法,还是严格遵守接口?

我认为不会,如果你需要使用上述方法,你应该创建另一个接口/类,这样你就可以保持接口分离的原则。

这是对的吗?

您想要针对接口进行操作,因此无法调用任何其他公共方法。

IService service = new Service();

当然,您可以创建任意数量的公共方法,并像这样创建对象。

Service service = new MyService()

然而,我不认为这是最好的做法。

您可以实现多个接口,然后让客户端决定哪个接口适合调用。但是你想把SRP留在你的课堂上。

作为下面的一个例子。Service有两个公共方法,每个方法都在一个单独的接口中定义。Client想要直接与IService合作。然后,更高级别将使用IDisposable并调用该接口的Dispose()方法。

interface IService
{
void Execute();
}
class Service : IService, IDisposable
{
public void Execute() {}
public void Dispose() {}
}
class Client
{
private readonly IService _service;
public Client(IService service) => _service = service;
}

最新更新