6

Bir gözlemci deseni ile MVC arasındaki farkların neler olduğunu merak ediyorum. Java'da okulda MVC programı yazarken bazı deneyimlerim var, ancak gözlemci modelinde deneyim yok. (birisi bana gözlemci deseninin Java'daki Observer sınıfını kullanmamı gerektirdiğini söylemişti ... Bunun iyi bir cevap olduğunu düşünmüyorum.)gözlemci deseni vs MVC

Lütfen aşağıdaki sorulara yardımcı olun, teşekkürler çok teşekkürler.

  1. Aradaki fark nedir? Gözlemci deseni denetleyiciler için ayrı bir sınıf kullanmıyor mu?

  2. Gözlemci deseni ve MVC arasındaki ilişki nedir? İki farklı versiyon duydum.

    • İlk sürüm, MVC bir mimaridir ve Observer Pattern bir tasarım desenidir. Benzerler çünkü MVC gözlemci modelini kullanıyor.
    • İkinci versiyon, gözlemci deseni ve MVC'nin iki farklı tasarım modelidir.
  3. Sadece bunlardan birini kullanmak mümkün mü? Eğer öyleyse, hangi durumlarda, birini diğerinden kullanırsın ve neden?

+0

MVC Burada bir döngü bakın gözlemci – lichengwu

cevap

2

Sorduğunuz sorularla ilgili birçok makale var. Bana göre MVC, gözlemci örüntüsünün "içerdiği" bir mimari örüntüdür. Farklı gerçek hayat projeleri uygulamalarında MVC modelini gerçekten inceliyorsa, bu modelde birden fazla tasarım deseni var.

Ya yakınlaştırıyor ya da uzaklaştırıyorsunuz.

13
  1. Sen MVC olduğunu söyleyerek haklısın daha bir mimari tarzı yerine burada bir tasarım deseni iyi tartışma: Is MVC a Design Pattern or Architectural pattern

bu da senin diğer iki sorunun cevabının umuyoruz.

Gözlemci Tasarım deseni, x nesnesinin değişmesi durumunda bir nesnenin tüm bağımlılarını (x demek) bildirmek istediğimizde kullanılan bir Behavirol kalıbıdır. İyi okuma: http://www.dofactory.com/Patterns/PatternObserver.aspx

Ve ikisi yakından ilişkilidir, MVC gibi MVC diyagramından görecekti - örneğin: 'Görünüm' A Change 'Model' ve 'Kontrol' Bir verimli bildirilir Has Böyle bir özellik elde etmenin yolu Gözlemci tasarım deseni.

İyi okuma: Bu yardımcı olur http://en.wikipedia.org/wiki/Observer_pattern

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

Umut!

enter image description here

+0

içerir. Görünüm, görüntülemek üzere bir sinyal gönderen bir modele sinyal gönderen kontrolöre sinyal gönderir? – whomaniac

+0

Evet. Bir sinyal başlar ve görünümde durur.Örneğin, metni italik hale getirmek için bir düğmeyi tıklatırsanız, görünüm, denetleyiciye hangi "italikleştirme" nin (mantık, örneğin gerçekte seçili herhangi bir metin) anlamına gelir, ardından metin modelini güncelleştirir (metin bloğunu "ITALIC olarak ayarlar." = TRUE "), yazı tipinin italik biçimini görüntülemeyi anlatır. Genelde sonsuz bir döngü istemezsin. – stackexchanger

+0

Ancak güncelleme modelden geliyorsa, "Görünüm Seçimi" oku ne yapar? – binaryguy