In unserer Rails-Anwendung fügen wir Benachrichtigungen hinzu. Einige davon sind blocking
: Sie stoppen den Fortschritt der hinzugefügten Ressource, da einige Informationen zu dieser Ressource fehlen.
Andere Benachrichtigungen sind einfache Benachrichtigungen, die nur Informationen enthalten.
Heute hatte ich eine Diskussion mit einem anderen Programmierer in unserem Team. Ich habe die Vererbungsstruktur wie folgt erstellt:
Er möchte jedoch lieber, dass ich nur blocking
eine boolesche Rückgabemethode für jede Benachrichtigung hinzufüge und eine Liste von Unterklassen spezifiziere, die innerhalb der übergeordneten Klasse "Benachrichtigung" blockiert werden.
Der Unterschied zwischen diesen Ansätzen ist nicht sehr groß; In meinem Ansatz muss man diese Liste nicht spezifizieren, um die Stammklasse sauberer zu halten. Auf der anderen Seite ist die spezielle Logik, die gerade auftritt, auch Notification::Blocking
nicht sehr groß.
Welche Art von Abstraktion ist für dieses Problem besser geeignet?