Я программирую в Java 7
и теперь мне нужно создать базовый класс BaseCondition
для всех конкретных условий. Что я имею в виду, это то, что у меня есть некоторые типы: Date
, Integer
и некоторые enum
s и мне нужно хранить такие условия, как _ALL_INTEGERS > 100 and < 200
, _ALL_INTEGERS > 100
, _ALL_INTEGERS < 200
и так далее. Даты (более, менее, между). Для enum
с я собираюсь выбрать только одно значение сейчас, так что еслиКак создать иерархию классов?
enum BonusType{
BIRTHDAY,
REGISTRATION
}
тогда условия будут выглядеть BonusType= BIRTHDAY
и BonusType= REGISTRATION
.
Так что я пытался писать было
public class <T> ConditionBase{
private T low;
private T high;
//GET, SET
}
и использовали low=high
, когда мне нужно, чтобы создать условия для перечисления. Все условия будут производный класс следующим образом:
public class DateCondition extends BaseCondition<Date>{ }
public class BonusTypeCondition extends BaseCondition<BonusType>{ }
Пример конкретного условия:
BaseCondition c = new BonusTypeCondition();
c.setLow(BonusType.BIRTHDAY);
c.setHigh(BonusType.BIRTHDAY);
ВОПРОС: Я не уверен, если не попадет в неприятности, когда Я пытаюсь расширить функциональность (добавив более сложные условия). Не могли бы вы предложить что-то более масштабируемое?
Кажется, что вы изобретаете [Предикат] (http://docs.oracle.com/javase/8 /docs/api/java/util/function/Predicate.html) –