2010-03-19 7 views
5

Attualmente eseguo il refactoring del codice che coordina più componenti hardware per l'acquisizione dei dati e mi sento un po 'come se stessi ricreando la ruota. In particolare, sembra emergere un pattern MVC- come. Tranne che questo non ha nulla a che fare con una GUI e temo di forzare questo particolare schema laddove un altro potrebbe essere più appropriato. Ecco il mio scenario:Come si chiama un'architettura "Model-View-Controller" generalizzata (non correlata alla GUI)?

Le singole classi di componenti "hardware" rispettano i contratti di interfaccia per ogni tipo di hardware. In precedenza, le istanze dei componenti venivano orchestrate da una singola classe monolitica InstrumentController, che si basava molto sulla configurazione + logica di diramazione per l'esecuzione di una sequenza di acquisizione specifica. Dopo un'iterazione, ho un controller separato per ogni componente, con tutti questi controller gestiti da un piccolo InstrumentControllerBase (o dai suoi derivati). Il sistema composito riceverà "input" sia a livello di codice che tramite trigger di componenti inter-hardware - in entrambi i casi queste interazioni vengono instradate e gestite dal controller appropriato.

Quindi, ho qualcosa che si sente MVC-esque, ma non so se è perché sto forzando il punto. Con poca esperienza diretta di MVC nello sviluppo di applicazioni, è difficile sapere se sto solo cercando di far rientrare il mio scenario in MVC, dove un altro modello potrebbe essere una buona alternativa o complementare. Il mio problema è, search results e wiki documentation di questa famiglia di modelli sembra lasciarmi immediatamente nelle discussioni specifiche della GUI.

Capisco "M significa Dati modello e V significa Vista" - ma come si chiama il modello superset? Component-comandante-controller?

Da dove posso riesumare esempi esemplari?

risposta

5

IMO una "vista" non è necessariamente un componente della GUI. Il pattern è più semplice da dimostrare con le GUI, ma ciò non limita la sua usabilità alle GUI. Se funziona per te, non preoccuparti del nome :-) E, naturalmente, sentiti libero di adattarlo in base alle tue esigenze.

Aggiornamento: Di più parenti generici di MVC, l'unico esempio emerso nella mia mente (dopo l'elaborazione in background di un giorno) è PAC.

+2

Grazie! Vedo cosa intendi: vista potrebbe significare solo la superficie di interazione di un modulo rivolta verso l'esterno, o "oggetto" se vuoi :). Era interessato alle parole chiave perché sto cercando buoni esempi del modello al di fuori della programmazione della GUI. –

+1

@David vedere un possibile candidato nel mio aggiornamento. –

+1

Grazie - sì, l'ho visto, ma ho perso l'ottimo riferimento ad Avgeriou e Zdun: Parigi Avgeriou; Uwe Zdun (2005). "Modelli architettonici rivisitati - un linguaggio modello". Atti della decima conferenza europea sui linguaggi dei programmi di modelli (EuroPlop 2005), Irsee, Germania, luglio 2005. pp. 1-39. (pdf: http://www.daimi.au.dk/MultiCore/attachment/wiki/StudyGroup08/Plan/) –

Problemi correlati