Разработка наследования для интерфейсов Validate.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Разработка наследования для интерфейсов Validate.

Сообщение Anonymous »

Я никогда не был так хорош в дизайне, потому что существует так много разных возможностей, и у всех есть плюсы и минусы, и я никогда не уверен, какой из них выбрать. В любом случае, вот моя проблема: мне нужно, чтобы множество разных слабо связанных классов имели проверку. Однако для некоторых из этих классов потребуется дополнительная информация для проверки. Я хочу иметь метод validate, который можно использовать для проверки объекта, и я хочу определить, можно ли проверить объект с помощью интерфейса, скажем Validatable. Ниже приведены два основных решения, которые я могу предложить.

Код: Выделить всё

interface Validatable {
public void validate() throws ValidateException;
}
interface Object1Validatable {
public void validate(Object1Converse converse) throws ValidateException;
}
class Object1 implements Object1Validatable {
...
public void validate() throws ValidateException {
throw new UnsupportedOperationException();
}
}
class Object2 implements Validatable {
...
public void validate() throws ValidateException {
...
}
}
Это первое решение, в котором у меня есть общий глобальный интерфейс, который реализует что-то, что можно проверить, и я мог бы использовать validate() для проверки, но Object1 этого не делает. t поддерживает это, поэтому он вроде как не работает, но Object2 поддерживает его, как и многие другие классы.

В качестве альтернативы я мог бы иметь следующее, что оставило бы меня без верхнего уровня интерфейс.

Код: Выделить всё

interface Object1Validatable {
public void validate(Object1Converse converse) throws ValidateException;
}
class Object1 implements Object1Validatable {
...
public void validate(Object1Converse converse) throws ValidateException {
...
}
}
interface Object2Validatable {
public void validate() throws ValidateException;
}
class Object2 implements Object2Validatable {
...
public void validate() throws ValidateException {
...
}
}
Я думаю, что основная проблема, с которой я столкнулся, заключается в том, что я застрял в идее иметь интерфейс верхнего уровня, чтобы я мог хотя бы сказать X или Y Object является допустимым.

Подробнее здесь: https://stackoverflow.com/questions/182 ... interfaces
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»