Domanda

Stasera sono andato a una riunione di un gruppo di utenti .NET, e parte di esso ruotava attorno al modello di modello vista modello-vista e mi ha fatto pensare se questo fosse qualificato come modello.
Il problema che ho è che M-V-VM è estremamente specifico per la tecnologia. Se non usi WPF e il suo meccanismo di associazione, non vedo come potresti usare quel modello.
Al contrario, la maggior parte dei "classici" i modelli sono in gran parte indipendenti dalla tecnologia. Il più grande presupposto che fanno è che il linguaggio utilizzato è orientato agli oggetti e in genere supporta l'ereditarietà. Oltre a ciò, i modelli classici riguardano principalmente la definizione di un problema di progettazione generale e la proposta di un approccio per risolverlo, ma sono possibili molteplici implementazioni o variazioni.
La mia domanda è quindi dove tracciare la linea di demarcazione, tra cos'è un modello di progettazione e qual è una raccomandazione su come utilizzare un framework molto specifico? Se sai come implementarlo e quale linguaggio e tecnologia devi usare per farlo, è ancora un modello?

È stato utile?

Soluzione

Possono i concetti sottostanti che sono necessari per l '"approccio"? lavorare essere reimplementato su un'altra piattaforma senza violare brevetti, proprietà intellettuale o oscene quantità di lavoro? In tal caso, direi che possiamo ancora definirlo un modello di progettazione nel senso che stai arrivando - solo uno nuovo che non è facile da fare ampiamente eppure . (Anche se anche gli approcci specifici della piattaforma possono ancora essere modelli di progettazione per la comunità più piccola che può usarli).

Tieni inoltre presente che MVVM è solo un'implementazione specifica del modello di modello di presentazione presentato da Martin Fowler , che è certamente" classico " come dici tu, e indipendente dalla piattaforma.

" Niente di nuovo sotto il sole " come si suol dire, solo diverse disposizioni delle stesse idee. I principi vengono perfezionati continuamente, raramente ne vengono inventati di nuovi.

Altri suggerimenti

I pattern non sono un'isola in un mare di altre cose. Non è in bianco e nero che qualcosa sia un motivo o no; tutti i motivi possono essere disposti su una scala ed essere di varie sfumature di grigio tra generico e specifico del dominio, tra processo e codice e praticamente ogni altro due obiettivi che ti capita di scegliere.

Se è una ricetta che vale la pena condividere o riutilizzare anche in leggermente circostanze diverse, è uno schema.

Sì, i modelli di progettazione dipendono spesso dal linguaggio di programmazione e dalla tecnologia in uso: ad esempio, i DP che si occupano della proprietà esplicita delle risorse giocano male con i linguaggi raccolti in modo inutile, uno che aggira i limiti della digitazione in fase di compilazione gioca male con la dinamica lingue e così via: è normale, perfettamente bene, essenzialmente inevitabile.

" Una raccomandazione " differisce da "un modello di progettazione" non dal contesto tecnologico, ma dall'ampiezza e soprattutto dalla profondità: una DP adeguata identifica due o più usi sviluppati in modo indipendente di approcci simili, approfondisce per vedere quali "forze" comuni avevano a che fare con loro, e proseguono da lì, in un magnifico formato ma pesante. Al contrario, una raccomandazione è molto meno formale, profonda e ampia!

Le DP non vengono mai inventate , vengono scoperte meditando sul codice esistente (due o più occorrenze sviluppate in modo indipendente) che affrontano situazioni simili, identificando i punti comuni come " forze " guida delle soluzioni, ecc. ecc. "DP" è un termine così popolare e accattivante che è usato molto più ampiamente di quanto dovrebbe essere -0- tornare alle fonti e leggere o rileggere Alexander Timeless Way of Building e le sue altre opere, se hai perso la strada attraverso il boschetto del buzzwordhood di DP, ti aiuteranno a trovare di nuovo la pista !

  

Se non si utilizza WPF e la sua associazione   meccanismo, non vedo come potresti   usa quel modello.

Anche Silverlight e Moonlight supportano MVVM.

" Le lingue sono basate su paradigmi " ogni paradigma ha modi diversi di risolvere un problema. I modelli di progettazione sono soluzioni comuni, non importa se sono specifici della lingua o meno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top