我正在创建一个控制台应用程序,用于学习状态和观察者模式.该程序基于一个基本订单系统,其中每个订单可以具有状态(待处理,就绪,提交即状态模式),并且通知订单时有兴趣从订单接收通知的订户(观察者模式).
Order类正在实现三个接口; IOrder,IOrderState而IObservable但我意识到,而不是我能有相互继承的接口.哪种方法会更好?你什么时候分别从每个接口实现类实现而不是说,IOrder继承其他两个接口?
例如:
public class Order : IOrder, IOrderState, IObservable
Run Code Online (Sandbox Code Playgroud)
要么
public interface IOrder : IOrderState, IObservable
Run Code Online (Sandbox Code Playgroud)
编辑 我可能刚刚回答了我的问题 - 如果你确定实现它的对象(Order类)将始终需要使用这些方法,我是否认为你会使IOrder接口继承其他两个接口?如果您不确定是否需要接口方法,或者其他类(即订阅者可能不需要观察订单),那么您是否会在类级别单独包含接口?
按照ISP (Interface Segregation Principle)规则,应该是IOrder接口实现IOrderState, IObservable接口。因此,无论哪个类实现IOrder,它也将实现其他 2 个接口。
所以第二种情况比较合适。IE
public interface IOrder : IOrderState, IObservable
Run Code Online (Sandbox Code Playgroud)