Лично я бы пошел по пути Multiple_Choice_List_Field
.Я не думаю, что существует строгий стандарт или технический принцип, который заставил бы вас делать это одним способом вместо другого.Здесь важнее выбрать один из способов сделать это и следовать ему, когда вы сталкиваетесь с такой дилеммой.Вы должны быть последовательными, но какой путь вы выберете - ваш собственный выбор.
Я бы выбрал подкласс, потому что таким образом вам не придется раздувать ваш класс List_Field
дополнительными проверками и требованиями.Конечно, есть и другие соображения, такие как, если вам нужно переключить множественный выбор и одиночный выбор во время выполнения, было бы лучше перейти к логическому свойству (хотя подкласс тоже будет работать, но мне это не кажется естественным).
Другое дело для List_Field
, вам может потребоваться более одного свойства для обработки нескольких вариантов выбора, в зависимости от текущей реализации.Например, новое свойство для возврата массива выбранных элементов.
Просто сделайте это так, как вам удобнее создавать и поддерживать (и в конечном итоге расширять).