MVC modelleri nasıl soyutlanmış olmalıdır?

2 Cevap java

Ben epeyce yapısal sorunlara sahip bir web sitesi uzanan ve geliştirme sürecinde yaşıyorum. Bana MVC duymuştum ama soyutlama veya modülerlik fikirlerini anlamadı önce geliştiriciler çok benziyor. Yani MVC "çerçeve" olarak kullanılan birkaç kerede vardır) a) ısmarlama b) kırık c) yamalı ve d. Bunu düzeltmek niyetinde.

Bu btw bir sitenin çerçeve, yeniden inşa ettik ilk kez değil, ama ben bir MVC framework düzeltmek için yaşadım ilk kez. Ancak, ben burada SO MVC bilgisi eksik olan bazı deliklere karşı geliyorum.

İlk programcılar kendi modelleri ile SQL veritabanı kravat gibi görünüyor nasıl yakından ilişkilidir. Bu benim için mantıklı değil: programcılar normalde modeli veri soyutlama sonra arayan var mı? (Benim için bu. Ham PHP kodu SQL koyarak biraz daha iyidir) Yoksa normalde bu "Does SQL" kullanılan bir veri erişim katmanı var? API bu işler: Ben ikinci arama kodu veri olduğu hakkında endişelenmenize gerek, ya da nasıl olsun ya da nasıl yazmak değil demektir deneyimlerinden biliyorum.

Ama ne Modeller hakkında? Farklı sayfaları arasında yeniden kullanılabilir olması amaçlanmıştır mısınız? Bu verilerin saklandığı sadece burada önemsemeliyiz? Onlar veri almak ve veri-show (örn. görüntülenebilir bir isim bir kişinin grup kimliğini dönüm) arasındaki mantığını işleme ile daha ilgili olması gerekmiyor mu? Ve veri kaydetme ve veri yazma (örn. savable veri içine $ _POST değerleri açmak için nasıl sergiyi)?

Veri-Model-View-Controller - Belki MVC modeli gerçekten DMVC olacak.

Bu bir PHP noktadan-of-view olsa Son olarak, ne de bu kavramların bir JSP siteye çevirmek?

2 Cevap

But what about the Models? Are they intended to be re-usable amongst different pages?

Evet.

Should they care about just where the data is stored?

No Onlar bunu bilmiyor gerekir. Bütün bu tür bilgiler sebat katman ya da bir veri tabakası için gereklidir.

Shouldn't they be more concerned with handling the logic between data-fetch and data-show (e.g. turning a contact's group ID into a displayable name)?

Hayır Onlar iş mantığı hakkında sadece endişe duyuyorlar. Bazı olağan uygulama ben millet sadece nitelikleri / özellikleri ve başka bir şey olan, modeli aptal yapmak bulduk. Java tipik örneği alıcılar / ayarlayıcıları ile, POJO olacaktır. Biz TOS (Transferi Objects) onları aramak ve bir veri sahibi olarak, her yerde kullanabilirsiniz. Ben IMO, uygun ve orada olmaya hak bazı yöntemler, iş ile ilgili olması gerektiğini, bu anlaşmanın gerçekten değilim. Bu kadar aptal yapmayın. Yeni Varlık Fasulye (EJB3) bu iyi bir örnektir.

BTW, data show bir sunum katmanı eseridir. Java JSP bakış teknolojisinin bir parçasıdır.

And data-save and data-write (e.g. figuring out how to turn $_POST values into savable data)?

No Bu genellikle bazı yardımcı sınıfları kullanarak, bizim kontrolörleri çoğu zaman yapılır.

Sen veritabanı şeması veya kullanıcı arabiriminden işe başlamak konusunda burada birden fazla konu bulacaksınız. Aramak için bir yer var.

Ben bir şema alır ve tam tersi daha sizin için CRUD UI ("iskele") oluşturur bir araç çok daha fazla düşünebilirsiniz. Bakmak için başka bir yer yoktur. (Poster-çocuk: Ruby on ve bilişsel yavrular).

ORM araçları tartışırken, tercih edilen kısaltma "ROM" ne zaman olacağını çok kez (ama hepsi değil herhangi bir yöntemle) vardır.

Biz, "Ready, Ateş, Amaç" için bizim kötü eğilimi bizi teşvik araçları bir sürü var. Yönetimi için, "somut kanıt" ve "RC1" arasındaki kısa çizgidir.