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