В настоящее время я сталкиваюсь с проблемой проектирования и был бы признателен за советы, как мне ее решить:
Проблема
Я буду использовать пример, чтобы проиллюстрировать мою заметку о проблеме, это простопример:
Предположим, у вас есть интерфейс под названием Pass с перечисленными методами:
public interface Pass {
public boolean hasPassedA();
public boolean hasPassedB();
public boolean hasPassedC();
}
Предположим, у вас есть класс, который реализует этот интерфейс под названием Assessor:
public class Assessor implements Pass{
// how should I implement this class ??
}
НаконецКласс ученика:
public class Student {
// some code that defines student behaviour not important.
}
Тогда возникает вопрос, как я могу сделать взаимодействие между Ассессором и объектом ученика более гибким?
Что я заметил, так это то, что объект Ассессора должен бытьчто-то абстрактное, потому что в действительности не существует такого понятия, как Assessor, но вместо этого у вас есть разные типы асессоров, такие как Math Assessor или English Assessor и т. д., что, в свою очередь, позволит мне создавать разные типы объектов Assessor, например
MathAssessor extends Assessor
EnglishAssessor extends Assessor
Концепция заключается в том, что Student может пройти, если все методы, объявленные в интерфейсе Pass, возвращают trи все дополнительные методы в классах subjectAssessor возвращают true.
Что мне делать в классе Assessor?Я читал о шаблонах проектирования адаптеров, но не полностью понял это понятие или оно вообще применимо к этой ситуации?