Design: miscelazione di diverse funzionalità nella gerarchia delle classi in C ++

1

Supponiamo di avere una sorta di modello di osservatore, in cui gli oggetti dei messaggi vengono inviati agli osservatori. Quindi ho detto il messaggio di classe come la parte superiore di una gerarchia e gli osservatori che ci lavorano. I messaggi concreti derivano da quello e identificati da un ID, tramite il quale è possibile trasmettere il messaggio al suo sottotipo concreto e lavorare con esso. (Questo è il codice esistente su cui ho bisogno di lavorare) Ora c'è un'altra funzionalità, chiamiamola A, B, ... Attualmente esiste un'enorme gerarchia di classi simile a

class Message
class MessageWithA : public Message
class MessageWithAandB : public MessageWithA

ecc.

Ora le funzionalità A, B ecc sono (per lo più) completamente indipendenti dal sistema di messaggistica e anche da allora. Non sarebbe meglio derivare le classi concrete come

class MessageWithA : public Message, public A
class MessageWithAandB : public Message, public A, public B ?

(dove A e B sono classi che si concentrano sullo stretto necessario per implementare la funzionalità appropriata)

Questo modello ha un nome? Ed è usato in C ++? Stavo pensando a "Mix-in", ma la definizione di quello afferma esplicitamente che non viene utilizzata alcuna eredità. Quello che voglio fare ha senso?

    
posta Scrontch 15.11.2016 - 15:40
fonte

0 risposte

Leggi altre domande sui tag