В нашем приложении Rails мы добавляем уведомления. Вот некоторые из них blocking
: Они останавливают прогресс любого ресурса, к которому они добавлены, потому что некоторая информация об этом ресурсе отсутствует.
Другие уведомления являются простыми уведомлениями и предоставляют только информацию.
Сегодня у меня была дискуссия с другим программистом в нашей команде. Я создал структуру наследования следующим образом:
Однако он предпочел бы, чтобы я просто добавлял blocking
в качестве метода логического возврата в каждом уведомлении и указывал список подклассов, которые блокируются внутри родительского класса уведомления.
Разница между этими подходами не очень большая; в моем подходе нет необходимости указывать этот список, сохраняя корневой класс чище. С другой стороны, особая логика, которая происходит Notification::Blocking
сейчас, тоже не очень велика.
Какая абстракция больше подходит для этой проблемы?