gpt4 book ai didi

c# - 接口(interface)还是抽象类?

转载 作者:可可西里 更新时间:2023-11-01 08:14:03 24 4
gpt4 key购买 nike

对于我的新宠物项目,我有一个设计问题,这个问题已经确定了,但我也想就此提出一些其他意见。

我有两个类(简化):

class MyObject
{
string name {get;set;}
enum relation {get;set;}
int value {get;set;}
}

class MyObjectGroup
{
string name {get;set;}
enum relation {get;set;}
int value {get;set;}
List<MyObject> myobjects {get;set;}
}

稍后在项目中 MyObjectGroupMyObject 应该被同等使用。为此,我可以采用两种方式:

  • 创建接口(interface):IObject
  • 创建一个抽象类:ObjectBase

我决定采用接口(interface)的方式,我以后在代码中不能每次都写 ObjectBaseIObject 只是为了方便 - 但还有什么其他积极的这条路?

其次,如何将 IXmlSerializable 添加到整个故事中?让接口(interface)继承自IXmlSerializable 还是在抽象基类中实现IXmlSerializable 更有积极意义?

最佳答案

一般来说,我在这种情况下使用的方法是既有接口(interface)又有抽象类。接口(interface)定义了接口(interface)。抽象类只是一个助手。

这种方法绝对不会出错。接口(interface)使您可以灵活地更改实现。抽象类为您提供了您不必使用的样板和帮助程序代码,否则如果您的方法是根据抽象类显式定义的,您就会使用这些代码。

关于c# - 接口(interface)还是抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1165332/

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