实现属性或实现子类 - c#

我有一个名为List_Field的类,顾名思义,该类构建列表输入字段。这些列表输入字段使用户可以在每个列表中选择一个项目。

我希望能够建立列表输入字段,以允许用户在每个列表中选择多个项目,因此我面临以下难题:

我应该通过在现有multiple_choice_allowed属性中实现List_Field属性来实现此目的,还是应该实现Multiple_Choice_List_Field类的List_Field子类?

遇到像这样的困境时,我应遵循的工程原理是什么?

参考方案

看看SOLID principles。他们会帮助您进行设计。特别是,单一责任原则将告诉您不要将两个问题混为一类,而Liskov替代原则将告诉您不要创建破坏超类契约的子类,就像您所提议的那样。

那么在您的情况下解决方案是什么?您可以创建一个与选择类型无关的抽象基类,然后创建2个子类,一个子类用于单选,另一个子类用于多选。

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java:静态字段在内存中的哪个位置? - java

如果我们将对象存储在对象的静态字段中,那么JVM如何为它分配内存?它是否存在于“隐式”(不确定我是否使用正确的单词)类对象中?静态字段与对象字段有何不同? 参考方案 静态字段是类变量,并且在该类的所有实例之间共享。实例变量(或我认为您引用它们的对象字段)属于类的各个实例,并且不共享。至于它们存储在内存中的位置将根据JVM的实现而定,因此没有理由需要两个不同的…

JAVA 8具有任何匹配属性的对象的过滤器列表 - java

我的要求是通过匹配任何属性的字符串来过滤对象列表。例如,假设Contact类具有三个属性:街道,城市,电话。我知道java流过滤器是如何工作的,在这里我必须将输入字符串与每个属性进行比较,如下所示:contactList.stream().filter(contact -> contact.getStreet().equals("dubai&…

Java-非泛型类扩展了泛型类 - java

我想知道如何(如果可能)创建一个类,它是泛型类的特定类型。具体来说,我有一个实现所有必需方法的abstract class Stack<Type>,我想有一个class StackInteger,而StackInteger的实例也是Stack<Integer>的实例。我看到我可以做这样的事情:class StackInteger { …

在类中创建类的实例 - java

考虑一下我有以下两个嵌套类:public class Foo { public class Bar { } } 我的目标是创建类Bar的实例。我尝试通过以下方式进行操作:// Method one Foo fooInstance = new Foo(); Foo.Bar barInstance = new fooInstance.Bar // fooInst…