当前位置: 首页 > 面试题库 >

您如何强制构造函数签名和静态方法?

仲孙温文
2023-03-14
问题内容

有没有一种方法可以强制(子)类在C#或Java中使用具有特定签名或特定静态方法的构造函数?

您显然不能为此使用接口,而且我知道它的用法会受到限制。我确实发现它有用的一个实例是您想要实施一些设计准则时,例如:

异常
它们都应该具有四个规范的构造函数,但是没有办法强制执行。您必须依靠FxCop之类的工具(C#情况)才能捕获这些信息。

运算符
没有指定可以对两个类求和的合约(C#中的operator +)

是否有任何设计模式可解决此限制?为了在将来的C#或Java版本中克服此限制,可以向 语言 添加什么构造?


问题答案:

在编译时没有强制执行,但是我花了很多时间研究类似的问题。在MiscUtil中都可以使用启用了泛型的数学库以及高效的(非默认)ctor
API 。但是,这些仅在运行时首次使用时检查。实际上,这不是一个大问题-您的单元测试应该很快找到任何丢失的运算符/
ctor。但这很快并且有效…



 类似资料:
  • 问题内容: 什么时候应该使用构造函数,什么时候应该使用静态方法? 您能用小片段解释一下吗?我略读了一些线程,但是我仍然不清楚。 问题答案: 当您只想返回该类型的新对象并且希望简单时,请使用公共构造函数。 一个很好的例子是StringBuilder,因为它是可变的,您可能每次都想要一个新对象。 当您可能想重用对象(尤其是不可变的对象),返回子类或描述结构时,请使用静态因子方法。一个很好的例子是Enu

  • 本文向大家介绍C#静态构造函数?相关面试题,主要包含被问及C#静态构造函数?时的应答技巧和注意事项,需要的朋友参考一下 最先被执行的构造函数,且在一个类里只允许有一个无参的静态构造函数 执行顺序:静态变量>静态构造函数>实例变量>实例构造函数  

  • 问题内容: 有效的Java说“考虑提供静态工厂方法而不是构造函数” 如果你有一个 为类A提供此方法是否有意义,而不是在代码中调用new A()。 问题答案: 请参阅此处以很好地说明您可能要执行此操作的主要原因。综上所述: 命名为“构造函数”。 如果合适,可以返回null。 如果合适,可以返回派生类的实例。 在实例化泛型类型的变量时减少冗长。 我想到了本文没有提及的另一个原因:可以实现有趣的逻辑来避

  • 本文向大家介绍解析C#中的私有构造函数和静态构造函数,包括了解析C#中的私有构造函数和静态构造函数的使用技巧和注意事项,需要的朋友参考一下 私有构造函数 私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。例如: 声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问

  • 嗨,我在模拟考试中问了这个问题 在Java代码中,编写名为Student的类,该类具有以下特性:•一个初始化为零的私有实例变量int studentNumber。•私有实例变量字符串firstName;•私有实例变量字符串lastName;•一种构造函数,它采用一个整数参数和两个字符串参数来初始化三个相应的数据项签名等于(学生s)的公共方法。 目前为止这是我的代码 我的问题是如何在参数中添加整数,

  • 问题内容: 我是AP Java学生,正在为考试做练习。我遇到了这个问题,但我不明白答案: 考虑以下类别: 执行以下代码后输出是什么: 正确答案是B *。有人可以向我解释方法调用的顺序吗? 问题答案: B构造函数被调用。B构造函数的第一条隐式指令是(调用超类的默认构造函数)。因此,调用了A的构造函数。A的构造函数调用,它调用java.lang.Object构造函数,该构造函数不输出任何内容。然后被称