我有一个名为 List_Field
的类,顾名思义,它构建列表输入字段。这些列表输入字段允许用户为每个列表选择一个项目。
我希望能够构建允许用户在每个列表中选择多个项目的列表输入字段,因此我面临以下困境:
我应该通过在现有的 List_Field
属性中实现一个 multiple_choice_allowed
属性来做到这一点,还是应该实现 的
类?Multiple_Choice_List_Field
子类>List_Field
遇到这样的困境,我应该遵循的工程原则是什么?
最佳答案
看看 SOLID principles .他们将帮助您进行设计。特别是,单一职责原则会告诉您不要将两个关注点混合在一个类中,而 Liskov 替换原则会告诉您不要创建违反父类(super class)契约的子类,就像您也提议的那样。
那么在您的情况下,解决方案是什么?您可以创建一个与选择类型无关的抽象基类,然后创建 2 个子类,一个用于单选,另一个用于多选。
关于c# - 实现属性或实现子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6008534/