Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 11

А я слышал ещё одну штуку, которую стараюсь применять.
Предпочитайте композицию наследованию.
Вынесите общий код в отдельный класс и не делайте наследование совсем.
Композиция — это круто, но о другом. В данном случае речь идет о том, как организовать абстрактный класс без попоболи
Не делать наследование совсем — очень плохой совет. Есть разные ситуации, для решения коротых удобны разные инструменты. Хороший инженер должен владеть разнообразными инструментами и знать, когда что уместно применять.
Согласен, слишком категорично получилось.
Только очень часто примеры наследования выглядят хуже, чем тот же пример через композицию.

Я пользуюсь наследованием во всех своих проектах и в рабочих тоже, но в целом, по моему личному опыту — композиция в долгосрочной поддержке безопаснее и безболезненнее.

Композиция прекрасна. Как и грамотно организованное наследование, когда оно нужно. Мы снова приходим к спору о здравом смысле.

НЛО прилетело и опубликовало эту надпись здесь
Конечно можно. Но мне нужен был лаконичный пример для демонстрации данного принципа проектирования
НЛО прилетело и опубликовало эту надпись здесь
«Не надо быть умным, надо быть понятным». Я стараюсь ориентироваться на флагманов нашей индустрии — все приличные авторы обьясняют сложные понятия на максимально простых примерах, т.к. целью ставится объяснить, а не показать собственную крутость.

> потом начинают применять где надо и где не надо
Такое поведение говорит о том, что человек действительно понял какую-то конкретную тему, но не потрудился разобраться во всем остальном. У меня был коллега, который все принципы проектирования сводил к SRP. Показываешь ему Инверсию зависимостей — так это же SRP! Как раскладывать на уровни абстракций — так это же SRP! Сегрегация интерфейсов — о, так это совсем SRP! И так во всём
Да ладно вам ))
улыбочку =)
public report SuperPooperTrashNoobReportMethod(bool? type){
	if (type) // true 
	{		
		return MonthlyReport();
	}
	else // false
	{
		return DailyReport();
	}
	// another
	return HourlyReport();
}

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации