Принципы проектирования - PavelMPD/SimpleProjects GitHub Wiki

Принципы проектирования: Выделить части приложения, которые могут изменяться, и отделить от постоянных. Программировать на уровне интерфейса, а не реализации. Отдавать предпочтение композиции перед наследованием (особенно для изменяемых частей приложения).