gpt4 book ai didi

c# - 这些接口(interface)应该在接口(interface)级别继承还是在类级别实现?

转载 作者:太空狗 更新时间:2023-10-29 21:39:25 29 4
gpt4 key购买 nike

我正在创建一个控制台应用程序,目的是学习状态和观察者模式。该程序基于一个基本的订单系统,其中每个订单都可以有一个状态(待定、就绪、已提交,即状态模式),并且当订单更新时有兴趣接收来自订单的通知的订阅者会收到通知(观察者模式)。

Order 类实现了三个接口(interface); IOrderIOrderStateIObservable 但我意识到我可以让接口(interface)相互继承。哪种方法会更好?您什么时候让类分别从每个接口(interface)实现,而不是说 IOrder 从其他两个接口(interface)继承?

例如:

public class Order : IOrder, IOrderState, IObservable

public interface IOrder : IOrderState, IObservable

编辑我可能刚刚回答了我的问题 - 如果您确定将实现 IOrder 接口(interface)的对象(Order 类)将始终需要使用这些方法,那么我认为您会让 IOrder 接口(interface)继承自其他两个接口(interface)是否正确?如果您不确定是否需要接口(interface)方法,或者是否需要其他类,即订阅者可能不需要遵守的顺序,那么您会在类级别单独包含接口(interface)吗?

最佳答案

根据 ISP (Interface Segregation Principle)规则,应该是 IOrder 接口(interface)实现了 IOrderState, IObservable 接口(interface)。因此,无论哪个类实现了 IOrder,它也将实现其他 2 个接口(interface)。

所以第二种情况更合适。即

public interface IOrder : IOrderState, IObservable

关于c# - 这些接口(interface)应该在接口(interface)级别继承还是在类级别实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966924/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com