当前位置: 首页 > 知识库问答 >
问题:

在某些情况下,空类会是正确的选择吗?

方增
2023-03-14

我知道拥有一个空的类通常是一个设计缺陷,但是在我的情况下,它是否是最好的选择,或者对于这个Scnario来说,什么是最好的设计呢?

ClassA是一个空的超类这里是我的代码

[KnownType(typeof(ClassB))]
[KnownType(typeof(ClassC)))]
[KnownType(typeof(ClassD))]
[DataContract]
public class ClassA
{
}

ClassB是从ClassA派生的

[DataContract]
public class ClassB: ClassA
{
    [DataMember]
    public int num1{ set; get; }
}
[DataContract]
public class ClassC: ClassA
{
    [DataMember]
    public int num1{ set; get; }
    [DataMember]
    public int num2{ set; get; }
}
[DataContract]
public class ClassD: ClassA
{
    [DataMember]
    public string val1{ set; get; }
}
[ServiceContract]
public interface IServices
{
    [OperationContract]
    string GetInformation(ClassA object);
}

共有1个答案

李昌勋
2023-03-14

您不需要创建空类。

由于ClassB、ClassC和ClassD这三个类没有任何通用的方法或属性。

因此您可以为每个类创建一个操作契约:

[ServiceContract]
public interface IServices
{
    [OperationContract]
    string GetInformationB(ClassB objectB);

   [OperationContract]
    string GetInformationC(ClassC objectC);

   [OperationContract]
    string GetInformationD(ClassD objectD);
}
 类似资料:
  • 本文向大家介绍在什么情况下选择webpack?在什么情况下选择rollup?相关面试题,主要包含被问及在什么情况下选择webpack?在什么情况下选择rollup?时的应答技巧和注意事项,需要的朋友参考一下 非要一句话区分的话 如果是用,如果是用其实界限并不是特别明显。在某些特殊情况下可以互用

  • 我正在尝试实现一个模块化的身份验证/授权应用程序。我想知道Shiro是否是正确的选择。我想得到的是有一个系统,我可以插入其中,也许以后可以交换一些身份验证endpoint和授权endpoint。我希望能够使用shiro进行身份验证(例如,我将为shiro实现facebook插件,或为shiro实现ldap插件,我可以轻松地将其插入我的身份验证/授权应用程序)。我还可能希望使用不同于shiro的框架

  • 我遇到了一个非常奇怪的问题,java线程正忙着等待。 我有一个线程忙于等待其他线程的静态变量的状态。假设忙碌等待的线程正在等待另一个线程的静态int变量达到某个值 如果我使用上面的代码,线程将被卡在忙等待中,不会跳出while循环,即使确实达到5。 但是,如果我使用其他代码,那么线程确实会跳出忙等待循环。有时,一旦达到5,其他时候会晚一点。但它会发生。对于我的特定示例,我将其用作“无意义的工作”

  • 我有一个数据框,其中一列有字符串值,另一列有整数,但这些列有特殊字符,或者字符串数据有整数。因此,为了删除它,我使用了regex,我的regex可以正常工作,但是对于整数列,如果'abc123'是,那么它不会删除abc,如果'123abc'是,那么它不会删除它。我不知道是模式错误还是代码错误。下面是我的代码, 输出: 如您所见,它已在

  • 我正在尝试上传图片到imgur,我可以上传大部分图片,但有些图片我无法上传,我不知道为什么。这给了我警告。 警告:文件\获取\内容():文件名在C:\wamp64\www\social\my-account.php中不能为空 如果代码有问题,我如何才能上传相同文件类型的其他图像。 从我观察到的所有未能上传的图片来看,文件大小相当大(约2MB至4MB)。 如果这是因为大小,我怎么能解决这个问题。 p

  • 问题内容: 鉴于以下课程 当我们验证它(例如,使用@Valid)并且如果Website.url不遵守我的自定义@ValidUrl约束时,我们将遇到约束冲突(例如,“ URL不可访问”)。 我想知道如果用户愿意,是否可以忽略该验证。 脚步: 第一次验证表格 引发约束冲突并将其显示给用户 用户选择“我知道,仍然添加”,然后重新提交 第二次验证表单,验证@ValidUrl以外的所有内容 问题答案: 您可