Мой класс использует одно поле с именем VolumeFormula для пояснительного текста. Это работает для 3D-фигур (Куб), но семантически неверно для 2D-фигур (Квадрат), у которых есть площадь, а не объем. Мне нужно различать их программно, чтобы в моем пользовательском интерфейсе могла отображаться кнопка «Область чтения» или «Объем чтения».
Какой здесь объектно-ориентированный подход лучше всего?
- Перечисление (, ShapeType.D3)?
Код: Выделить всё
ShapeType.D2 - Наследование (абстрактные ShapeData с подклассами Shape2D и Shape3D)?
- Поля, допускающие значение NULL (и VolumeFormula)?
Код: Выделить всё
areaFormula
Код: Выделить всё
import java.util.ArrayList;
import java.util.List;
public class ShapeDatabase {
public static class ShapeData {
public final String description;
public final String volumeFormula; //