6

Mi chiedo quali sono le differenze tra un pattern di osservatore e MVC. Ho alcune esperienze di scrittura di programmi MVC in Java a scuola, ma nessuna esperienza con pattern di osservatore. (qualcuno mi ha detto che il modello di osservatore significa che ho usato la classe Observer in Java ... Non penso che sia una buona risposta.)modello osservatore vs MVC

Per favore aiutatemi con le seguenti domande, grazie a lottttt.

  1. Qual è la differenza tra loro? Il pattern di osservatore non usa una classe separata per i controller?

  2. Qual è la relazione tra pattern osservatore e MVC? Ho sentito due diverse versioni.

    • Prima versione, MVC è un'architettura e Observer Pattern è uno schema di progettazione. Sembrano simili perché MVC utilizza il modello di osservatore.
    • La seconda versione è quella, modello di osservatore e MVC sono due diversi modelli di progettazione.
  3. È possibile utilizzare solo uno di questi? In tal caso, in quali casi, si utilizza uno sull'altro e perché?

+0

MVC contiene osservatore – lichengwu

risposta

2

C'è un sacco di articoli relativi alle domande che chiedi. MVC per me è un modello architettonico in cui "contiene" anche il modello di osservatore. Credo che se si studia veramente lo schema MVC in diversi progetti di real-life, ci sono più modelli di design in esso.

È possibile aumentare o diminuire lo zoom.

13
  1. Hai ragione nel dire che MVC è più uno stile di architettura piuttosto che un modello di progettazione buona discussione qui: Is MVC a Design Pattern or Architectural pattern

Spero che questo risponde alla tua domanda troppo altri due.

Observer Il modello di progettazione è uno schema di Behavirol che viene utilizzato quando si desidera notificare tutti i dipendenti di un oggetto (ad esempio x) in caso di modifica dell'oggetto x. Buona lettura: http://www.dofactory.com/Patterns/PatternObserver.aspx

Ed entrambi sono strettamente correlati, come MVC si vedrebbe dal diagramma MVC - ad esempio: Un cambiamento in 'Visualizza' deve essere notificata al 'modello' e 'Controller' Un efficiente modo per ottenere tale caratteristica è il modello di progettazione di Observer.

Buona lettura: http://en.wikipedia.org/wiki/Observer_pattern

In fact the observer pattern was first implemented in Smalltalk's MVC based user 
interface framework. 

Spero che questo aiuti!

enter image description here

+0

vedo un ciclo qui. View invia il segnale al controller che invia il segnale a un modello che invia un segnale per visualizzare ?? – whomaniac

+0

Sì. Un segnale inizia e si ferma alla vista.Ad esempio, se si fa clic su un pulsante per il testo in corsivo, la vista indica al controller, che decide cosa significa "corsivo" (logica, ad esempio qualsiasi testo effettivamente selezionato), quindi aggiorna il modello di testo (imposta quel blocco di testo su "ITALIC = TRUE "), che indica alla vista di visualizzare la versione in corsivo del font. Generalmente non vuoi un ciclo infinito. – stackexchanger

+0

Ma se l'aggiornamento proviene dal modello, cosa fa la freccia "Visualizza selezione"? – binaryguy