Progettazione per un'applicazione basata su plugin [chiusa]

-3

Sto lavorando su un'applicazione, dettagli di cui non posso discutere qui. Abbiamo un core framework e il resto è progettato come plug-in. Nel core framework abbiamo un oggetto dominio. Questo oggetto dominio viene aggiornato dai plugin. Ho definito un'interfaccia in cui ho la funzione

DomainObject doProcessing(DomainObject object)

La mia intenzione qui è di passare l'oggetto dominio, il plug-in lo aggiornerà e lo restituirà. Questo oggetto aggiornato viene quindi passato di nuovo a un altro plugin per essere aggiornato.

Non sono sicuro che questo sia un buon approccio. Non mi piace passare DomainObject al plugin. C'è un modo migliore per raggiungerlo? Dovrei semplicemente richiedere i dati dal plugin e aggiornare io stesso l'oggetto dominio?

    
posta Varun Naik 05.11.2012 - 16:55
fonte

2 risposte

5

Potresti usare Oggetti di trasferimento dati che vengono riempiti dai plugin. Oppure passa intorno alle copie (profonde) dei tuoi oggetti di dominio. E poi lascia che l'implementazione principale verifichi le modifiche a quegli oggetti prima di applicarli alle istanze reali.

    
risposta data 05.11.2012 - 17:17
fonte
0

Questo suona un po 'più come un approccio di pipeline / pipe e filtri rispetto a un'architettura plug-in.

Non c'è niente di sbagliato nell'approccio. Devi stare attento a non adottare un approccio troppo generico.

Potresti dare un'occhiata all'eccellente presentazione di Udi Dahan su come rendere espliciti i ruoli:

link

    
risposta data 05.11.2012 - 17:49
fonte

Leggi altre domande sui tag