Я занимаюсь рефакторингом старого сайта PHP OOP.
Мне так хочется начать использовать 'final' на классах для " make it explicit that the class is currently not extended by anything
". Это может сэкономить много времени, если я приду в класс, и мне интересно, могу ли я переименовать / удалить / изменить protected
свойство или метод. Если я действительно хочу расширить класс, я могу просто удалить ключевое слово final, чтобы разблокировать его для расширения.
Т.е. если я прихожу в класс, в котором нет дочерних классов, я могу записать эти знания, отметив класс как окончательный. В следующий раз, когда я приду к нему, мне не придется повторно искать кодовую базу, чтобы увидеть, есть ли у нее дети. Это экономит время при рефакторинге.
Все это кажется разумной идеей, позволяющей сэкономить время ... но я часто читал, что занятия должны быть окончательными только в редких / особых случаях.
Может быть, это портит создание объекта Mock или имеет другие побочные эффекты, о которых я не думаю.
Чего мне не хватает?