Я читаю об объектно-ориентированных принципах дизайна. Я столкнулся с особенностями плохого дизайна.Характеристики плохого объектно-ориентированного дизайна
- Это трудно изменить, потому что каждое изменение влияет слишком много других частей системы. (Жесткость)
- Когда вы совершаете изменения, неожиданные части системы ломаются. (Fragility)
- Трудно повторное использование в другом приложении, потому что оно не может быть , выведенное из текущего приложения. (Неподвижность)
Я могу понять первые два, но третий один мало для меня трудно понять. Речь идет об извлечении общих функций связанных классов в базовом классе, что делает методы из повторяющегося кода? Но он говорит hard to reuse in another Application.
Обычно мы пишем контекстный код и Over-engineering
- это не очень хорошая идея, у нас есть хорошие принципы, такие как YAGNI
. Я нахожу эти идеи немного противоречивыми.
Просьба представить ваши ценные мысли для этого.