В настоящее время я работаю над разработкой некоторой системы, в которой я запутался, если будет правильно контролировать атрибуты базового класса с производным классом.Должен ли атрибут базового класса управляться классом Derived
Например:
Class Building {
String name;
String[] facilities;
}
Class OfficeBuilding extends Building{
}
Class ResidentialBuilding extends Building {
}
// Тип Строительного контроля атрибут как объекты здесь, который является пустым по умолчанию. Должен ли он быть частью классов Derived или он должен оставаться частью базового класса, а производные классы должны просто переопределять его значения?
Следует иметь в виду: 1). Все классы - это классы данных. 2). Атрибут базового класса всегда пуст и управляется дочерним классом.
Спасибо.
Спасибо Кирилл. Могу я не очень хорошо объяснить свою проблему. подумайте, что вы являетесь клиентом этих классов, и есть ограничения, установленные сервером на основе значений объектов. Теперь, будучи клиентом, вы не сможете узнать, помещаете ли вы что-то неправильно в этих классах без вызова сервера. Я думал, правильно ли это делать с точки зрения сервера, или есть лучший способ справиться с этим. – user3089214
@ user3089214: Если объекты настроены на предопределенные значения, то они не должны быть строкой, а скорее определяют «Enum Facilities» 'со всеми значениями, которые могут вам понадобиться, и изменить реализацию, чтобы использовать перечисление вместо строки. Если вы имеете в виду, что некоторым зданиям разрешено иметь определенные объекты, вам нужно что-то, чтобы регулировать эти правила. В зависимости от того, что они (я до сих пор неясно), это может быть базовый класс или какой-то другой (независимый) класс, который его регулирует. –
Вы абсолютно правы в использовании ENUM, но я не хочу делать изменения кода (добавляя перечисления) каждый раз, когда новые объекты добавляются в категорию, поэтому я не делаю это ENUM и просто строки. – user3089214