gpt4 book ai didi

c# - 每个参数都应该使用一个接口(interface)吗?

转载 作者:行者123 更新时间:2023-11-30 19:34:12 24 4
gpt4 key购买 nike

如果我有这样的方法:

public void AddProduct(Product product)
{

}

我是否应该让我所有的类都实现一个接口(interface),这样我就可以:

public void AddProduct(IProduct product)
{

}

(其中产品是一个实体(映射到数据库表)

最佳答案

从来没有 Elixir 。接口(interface)和基类一起可以满足几乎所有需求,但接口(interface)永远不会完全取代基类,反之亦然。

“过度接口(interface)”的潜在风险是接口(interface)很难在以后更改,尤其是当它们传播到更多代码中时。如果 IProduct 需要一个新属性,那么将其添加到界面可能需要进行广泛的更改。基类(抽象或其他)可以通过在不影响子类的情况下轻松更改基类来解决这个问题。

另一方面,.NET 不允许多重继承,因此基类也远非 Elixir 。


一个有趣的旁注:我没有立即可用的资源,但其中一位框架之父(Kwalina 或 Abrams 或他们的同行)指出,将接口(interface)引入 .NET 主要是作为多重继承的替代方案;基调是,如果要从头重写 .NET,它可能会利用多重继承。

关于c# - 每个参数都应该使用一个接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1923936/

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