Come possiamo chiamare un modello, un controller e le viste correlate? [chiuso]

-1

Durante lo sviluppo di un'applicazione che utilizza il pattern MVC, mi trovo spesso ad aggiungere un nuovo modello, un nuovo controller e una nuova serie di viste per le azioni nel controller.

Queste modifiche sono piuttosto atomiche, poiché un nuovo modello non è utilizzabile senza modificare un nuovo controller (o almeno modifiche a un controller esistente). Allo stesso modo, probabilmente avrò bisogno di alcune nuove viste per sfruttare al meglio il mio nuovo modello.

Il mio problema è come chiamare questa raccolta di cose ?

Ho provato:

  • Modulo , ma questo implica più, um, modularità di quanto non sia strettamente appropriato (non sto costruendo nulla in modo così allentato che funzionerebbe in altri sistemi senza modifiche)
  • Tripletta MVC , che sembra goffo e ignora il fatto che la parte V si espanderà su diverse cose (ovvero non sono solo tre artefatti che abbiamo creato)
  • Ho giocato anche con parole come unità e entità , ma temo che siano già strettamente associate ai concetti esistenti ( testing e framework rispettivamente).

C'è un nome concordato per questo? Se no (senza voler diventare un parere) come lo chiami / lo senti chiamare?

    
posta Tom Wright 24.02.2017 - 10:25
fonte

1 risposta

2

Non esiste un nome chiaro per questo, principalmente perché non esiste una relazione 1: 1: 1 tra i Modelli: Viste: Controllori. Fondamentalmente, il classico MVC è una descrizione di altissimo livello dell'architettura. È meglio pensare in termini di gruppi di oggetti che in termini di singoli oggetti, cioè "i controllori eseguono operazioni sul modello", non necessariamente "questa classe di controllori usa quella classe di modello". Dopotutto, il modello descrive l'interezza della logica aziendale. Quindi, per essere assolutamente pedante, una descrizione come "le classi collaboranti di questa classe View" o "le classi Controller collaboranti di questa classe Model" potrebbe essere la migliore (confrontare anche schede CRC ).

Naturalmente ci sono alternative a MVC, in particolare MVVM o MVP. Invece dell'architettura circolare (o triangolare) di MVC, questi hanno una chiara direzione e stratificazione e c'è una chiara corrispondenza tra una vista da un lato e un presentatore o un modello di vista dall'altro. Qui, a volte ho sentito usare il termine axis per descrivere il gruppo di classi cooperanti per un aspetto dell'applicazione. Tuttavia, una singola classe di modello non farebbe parte dell'asse. Invece, il modello nella sua interezza è un'estremità di un asse, con la vista all'altra estremità. Mentre questa interpretazione molto direzionale non si adatta bene al flusso di dati libero nel classico pattern MVC, usando il termine "asse" per descrivere un insieme di visualizzazioni e i controller potrebbero essere comunque una buona idea.

Ad eccezione di "tripletta MVC", gli altri termini suggeriti hanno connotazioni diverse. In particolare, le "entità" di solito si riferiscono alla progettazione basata sul dominio, e i "moduli" sarebbero un insieme di comportamenti coesi con un'API chiara come classi o librerie. Interpretare un singolo asse MVC dell'applicazione come una libreria separata non è probabilmente utile, anche se la raccolta degli assi MVC di diversi contesti limitati in librerie separate potrebbe essere una buona idea.

    
risposta data 24.02.2017 - 13:15
fonte

Leggi altre domande sui tag