Я читаю эффективную Java-версию Дж. Блоха, и теперь я нахожусь в классе проектирования для раздела наследования. Он описал так называемый шаблон самообслуживания, который, насколько я уже сказал, не должен использовать переопределяемые методы в других переопределяемых методах.Проектирование классов для наследования
Итак, мой вопрос заключается в том, как заставить клиента быть осведомленным о самоиспользовании. Если мы упоминаем его в явном виде в Javadocs
вроде этого:
/**
* This class is self-use, thus it cannot be inherited.
*/
Или мы должны даже отказаться от соблазна self-use
.
Образец кода: Следует ли документировать класс, как описано выше, или мы должны избегать такого самообслуживания?
public class MyClass{
public void overrideMe(){
//something
ovMe();
}
public void ovMe(){
//some staff
}
}
Если вы не хотите, чтобы метод был переопределен, не просто дайте небольшую подсказку в виде ключевого слова в комментариях. Соберите его с помощью 'final'. – tilois
@ St.Antario Не у всех есть копия * Эффективной Java * с ними везде, куда бы они ни пошли. Просьба привести соответствующие абзацы и любые образцы кода, которые их сопровождают. – CKing
Это пункт 17, «Дизайн и документ для наследования или его запрет» – tilois