У нашому додатку Rails ми додаємо сповіщення. Деякі з них такі blocking
: вони зупиняють хід виконання будь-якого ресурсу, до якого вони додаються, оскільки деякої інформації про цей ресурс бракує.
Інші сповіщення - це прості сповіщення та надають лише інформацію.
Сьогодні я мав дискусію з іншим програмістом нашої команди. Я створив структуру спадкування так:
Він, однак, хотів би, щоб я просто додав blocking
метод булевого повернення у кожне Повідомлення та вказав список підкласів, що блокують всередині батьківського класу Повідомлення.
Різниця між цими підходами не дуже велика; у моєму підході не потрібно вказувати цей список, зберігаючи кореневий клас чистішим. З іншого боку, особлива логіка, яка Notification::Blocking
зараз відбувається, не дуже велика.
Яка абстракція більше підходить для цієї проблеми?