Наследование. Отношение "Является".
Если несколько классов имеют общие данные, но не формы поведения, сделайте общий объект, который включите в эти классы.
Если несколько классов имеют общие формы поведения, но не данные, сделайте эти классы производными от общего базового класса, определяющего общие методы.
- Убедитесь, что вы наследуете только то, что хотите наследовать. Не наследуйте реализацию только потому, что вы наследуете интерфейс. Если интерфейс класса не нужен, а нужна лишь реализация, то лучше включение, а не наследование.
- Не используйте имена непереопределяемых методов базового класса в производных классах.
- Перемещайте общие интерфейсы, данные и формы поведения на как можно более высокий уровень абстракции.
- С подозрением относитесь к классам, объекты которых создаются в единственном экземпляре. Исключение - "Одиночка".
- С подозрением относитесь к базовым классам, имеющим только один производный класс.
- С подозрением относитесь к класам, которые переопределяют метод, оставляя его пустым (убирая реализацию).
- Избегайте многоуровневых иерархий наследования.
- Предпочитайте полиморфизм, а не крупномасштабную проверку типов.
- Множественное наследование - "инструмент, который лучше большую часть времени хранить в гараже под замком". Может пригодится, но может и порождать ошибки (ромбовидная схема!).
Если несколько классов имеют общие данные, но не формы поведения, сделайте общий объект, который включите в эти классы.
Если несколько классов имеют общие формы поведения, но не данные, сделайте эти классы производными от общего базового класса, определяющего общие методы.
Комментариев нет:
Отправить комментарий