0

我正在尝试为应该具有启动、停止、恢复等方法的服务定义接口。

但是有些服务可以是异步的,需要异步实现相同的方法(启动、停止和恢复)。这里还有一个警告是异步方法也接受cancellationToken

问题 某些服务可以启动异步并停止同步。遵循ISP(接口隔离原则)。如果我们创建一个可消耗的接口,即

public interface IStartable 
{
        void Start();
}

public interface IStopable
{
        void Stop();
}


public interface IStartableAsync
{
     Task StartAsync(CancellationToken cancel);
}

public interface IStopableAsync
{
   Task StopAsync();
}

public interface IStartStoppable: IStartable, IStopable
{}

public interface IStartStoppableAsync: IStartableAsync, IStopableAsync
{}

正如我们在上面看到的,它需要创建太多各种组合的接口。

有没有更好的设计方法,相对简单且可维护?

4

0 回答 0