我有一个类可以处理与某些设备的通信。我称这个类为协议。该类不包含任何状态信息,因此我创建了一个模型类,它应该公开协议类中的方法并包含设备的状态。
如我所见,有三种实现方式
- 让模型类继承协议
- 让模型类实现协议
- 让模型通过一个属性暴露协议
可能是该协议包含最好不向模型类的实现者公开的方法,该模型类的实现者反对选项 1 和 3。
选项 2 让我可以选择我想从协议中公开哪些内容,但大多数功能只是对协议的调用,例如:
DoSomething()
{
protocol.DoSomething();
}
你认为什么是“更好”的选择?
NB:将状态和协议解耦的原因是协议不是固定的,可以根据外部因素而改变。