Mode MVC: Model View mencoba mengontrol pengontrol, yang merupakan mode arus utama saat ini, dan digunakan sebagai mode dasar entri perangkat lunak server untuk belajar dan menguasainya, dan kerangka kerja arus utama Struts 1/2 JSF Wicket pada dasarnya mendukung mode MVC.
Namun, dengan mempopulerkan aplikasi B/S dan Internet yang terus menerus, Web 2.0 dan sejumlah besar aplikasi interaktif yang sering seperti media sosial dan game, mode MVC yang relatif statis tidak lagi cocok untuk aplikasi yang sangat interaktif dan berorientasi pada perilaku.
Pemodelan domain DDD itu sendiri lebih memperhatikan struktur, objek nilai entitas dan servernya juga merupakan semacam pembagian struktural, tetapi tidak menekankan pentingnya tugas dan perilaku objek, dan ini adalah satu-satunya perbedaan antara objek dan database.
Sebaliknya,Desain Objek: Peran, Tanggung Jawab, dan KolaborasiBuku ini mengusulkan bahwa objek tersebut benar-benar memainkan peran tertentu, dan perannya bertanggung jawab, dan kemudian perilaku interaktif tertentu akan diimplementasikan dalam konteks adegan tertentu, yang telah dibahas sepenuhnya dalam Jdon:
DCI, model domain, beberapa ide untuk peristiwa domain
Pemikiran Arsitektur Asinkron: Terapkan pemodelan domain dengan Akka
Buku ini merangkum empat kelemahan utama pengontrol terpusat, dan pengontrol MVC sebenarnya termasuk dalam gaya pengontrol terpusat ini:
1. Logika kontrol bisa menjadi terlalu rumit. Pengontrol bisa menjadi rumit, dan biasanya banyak orang menulis kode bisnis di pengontrol Action Struts.Semua tindakan dalam tindakan, dan beberapa tindakan hampir ribuan baris.
2. Pengontrol dapat menjadi bergantung pada konten pemegang informasi. Pengontrol menjadi bergantung pada pusat data informasi atau database, pengontrol melakukan banyak hal, yang berarti bahwa objek domain melakukan sangat sedikit, dan pengontrol tidak hanya akan melakukan apa pada akhirnya, tetapi juga memutuskan hal-hal strategis, tetapi juga ditambah dengan masalah taktis seperti bagaimana melakukannya dan bagaimana menerapkannya.
3. Objek dapat digabungkan secara tidak langsung melalui tindakan pengontrolnya. Objek secara tidak langsung digabungkan bersama melalui tindakan pengontrol, satu objek dikueri di pengontrol, dan kemudian disalin ke objek lain, dan kedua objek digabungkan bersama.
4. Satu-satunya pekerjaan menarik dilakukan di pengontrol.
Pengontrol MVC adalah sejenis mode Mediator, tetapi juga pengontrol terpusat, ini adalah perbedaan utama dari mode pengamat: mode Mediator merangkum komunikasi, sedangkan pengamat komunikasi terdesentralisasi, dari sudut pandang komunikasi, pengontrol juga memiliki cacat yang melekat, mudah menjadi konsentrator yang besar dan digabungkan sepenuhnya, ini semua untukOOItu tidak ditoleransi.
Arsitektur DCIIni adalah konsep baru yang baru saja muncul dan melihat perangkat lunak dari perspektif baru, yang bertepatan dengan dan benar tentang desain yang digerakkan oleh tugasDDDpengembangan dan peningkatan.
DCI adalah singkatan dari Data Context Interactions, dan kontribusi pentingnya adalah mengedepankan konsep adegan, yang tidak disebutkan dalam buku Duty-Driven Development, yang hanya menyangkal MVC, mengungkap masalahnya, dan tidak mengusulkan alternatifDCIIni adalah arsitektur alternatif MVC, dan DCI menggantikan MVC dengan skenario untuk menggantikan pengontrol, seperti yang ditunjukkan pada gambar di bawah ini (gambar berasal dari).Bahasa Inggris Asli TheDCI Architecture: A New Vision of Object-Oriented Programming):
Adegan tersebut benar-benar menggali beberapa kontrol dan model di MVC dan merakitnya kembali dalam bentuk adegan karakter. Ini adalah sudut baru yang sama sekali berbeda dari pertimbangan mode MVC, yang lebih sesuai dengan sudut iniOO。
Baru-baru ini, seseorang telah mengangkatnyaScene Context adalah jenis objek baru, adegan tidak hanya bisa digantiSOALayanan web juga dapat menggantikan pengontrol MVC.
Secara pribadi, saya pikir arsitektur hierarkis baru mungkin terlihat seperti ini di masa depan: Lihat --> Konteks ---> Model Domain ---> Komponen/Respository
Mode MVC mati.
|