Jump to content

Model View Controller

Википедиа — Чөлөөт нэвтэрхий толь
Модел-Харагдац-Удирдлага ухагдахуун. Шулуун зураас нь шууд холбоосыг илэрхийлэх бөгөөд, тасархай шугам нь шууд биш виа observer ( жишээ нь) дамжсан холбоосыг илэрхийлнэ.

Модел–Харагдац–Удирдлага (MVC) нь ПХ-ийн архитектур бөгөөд[1], ө/х-л ПХ-ийн инженерчилэл-д ашиглагддаг архитектур загвар юм . Энэхүү загвар нь бизнес логикийг дэлгэцийн зохиомжоос тусгаарласнаар тест болон хөгжүүлэлтийн дараа арчилгаа тордолгоо хийхэд тус тусад нь хөгжүүлэх боломж олгоно.

Модел нь мэдээллийг удирдах эсвэл мэдээлэл өөрчлөгдөхөд observer-үүдийг анхааруулахад ашиглагдна. Модел нь домайн логик гэж нэрлэгдэх бөгөөд түүхий өгөгдөл дээр боловсруулалт хийсэн хэсэг юм. Жишээ нь өнөөдөр хэрэглэгчийн төрсөн өдөр мөн эсэхийг бодох, мөнгөн дүнгүүд, татварууд, кредит картаар авсан барааны хүргэлтийн зардал бодох гэх мэт. Хэрвээ модел нь төлвөө өөрчилвөл түүнтэй холбоотой харагдац-ууд бас өөрчлөгднө.

Харагдац гэдэг нь моделийг хувиргаж харагдах байдалд шилжүүлснийг хэлнэ, ихэвчлсэн дэлгэцийн харагдах байдал байна. Хэд хэдэн харагдах байдал нь ганцхан моделийг өөр өөр зорилгоор ашигласан байж болно.

Удирдлага нь оролтуудыг хүлээн аваад моделийг дуудаж хариу буцаах үйлдлийг бэлдэнэ. Удирдлага нь оролтуудыг зөвшөөрч тэрхүү оролтууд дээр үндэслэгдсэн үйлдлүүдийг моделийн тусламжтайгаар боловсруулах үүрэгтэй.

Model View Controller Process
Model View Controller Процесс.

MVC загвар Вэб апликэйшн хөгжүүлэлтэнд их ажиглагддаг бөгөөд HTML эсвэл аппликэйшн-ээр хөрвүүлэгдсэн XHTML нь Харагдац-ын үүрэг гүйцэтгэдэг. Удирдлага нь GET эсвэл POST-оор өгөгдлийг аваад юу хийхээ шийднэ( голдуу Модел дээр байгаа обьектуудыг ашиглан бизнесийн үйл ажиллагааг хийнэ)

MVC-г вэб төвтэй фрэймворкууд хэрэгжүүлсэн байдал

[засварлах | кодоор засварлах]
  • PureMVC Framework for Actionscript.
  • Wt - Web toolkit A library and application server for web applications using a desktop-like event-driven MVC pattern.

CFML - Adobe ColdFusion, Railo, and Open BlueDragon

[засварлах | кодоор засварлах]
  • ColdFusion on Wheels A convention over configuration framework similar to Ruby on Rails.
  • Fusebox Fusebox does not force the Model–View–Controller (MVC) pattern or Object-Oriented Programming (OOP) on the developer. However, either or both of these development approaches can be used with Fusebox.
  • Mach-II A framework that focuses on trying to ease software development and maintenance.
  • Model-Glue Through a simple implementation of Implicit Invocation and Model–View–Controller, they allow applications to be well organized without sacrificing flexibility.
  • PureMVC Framework for ColdFusion.
  • Cairngorm one of the primary open source frameworks for application architecture in Adobe Flex.
  • PureMVC ActionScript 3 MVC framework for Flex, Flash and AIR development.

MVC web application frameworks:

MVC web application frameworks:

  • IBM Informix-4GL MVC models to use for Informix 4GL report and form creation
  • EGL — IBM's EGL MVC Implementation

http://code.google.com/p/engineroom/ engineRoom is an MVC-like framework

  • CakePHP A webapplication framework modeled after the concepts of Ruby on Rails.
  • CodeIgniter An MVC framework for PHP4 (up-compatible with PHP 5.3.0 as of version 1.7.2).
  • Exponent CMS A Content Management System web application framework using its own MVC framework modeled after Rails.
  • eZ Publish Based on eZ Components is an object-oriented web application framework written in PHP that separates its functionality into several abstraction layers, following a strict MVC approach.
  • Jaws is a framework and content management system for building dynamic web sites.
  • Joomla! v1.5.x is an open source content management system that employs the MVC model for its extensions, called components and modules.
  • MODx A full-featured open source OOP MVC/ORB xPDO-based CMS.
  • Odin Assemble A Small footprint PHP based MVC framework.
  • phpXCore A MVC design pattern based PHP content management framework compatible with PHP4 and PHP5.
  • PureMVC A framework for PHP.
  • Qcodo An open-source PHP 5 web application framework.
  • SilverStripe Contains a fully fledged PHP 5.2 ORM/MVC framework focused on building websites.
  • Switch board (framework) A PHP 5 MVC framework with routing.
  • Symfony Framework A PHP 5 MVC framework modeled after the concepts of Ruby on Rails.
  • Zend Framework A PHP 5-based MVC framework conceptually similar to Ruby on Rails.
  • Yii Framework A new high-performance component-based PHP 5-based framework for developing large-scale Web applications.
  • Django A complete Python web application framework. Django prefers to call its MVC implementation MTV, for Model-Template-View.[4]
  • Enthought The Enthought Tool Suite brings the Model–view–controller mindset to scientific GUIs and visualization
  • Pylons—Python Web Framework
  • TurboGears for Python
  • web2py A scalable full-stack enterprise level Python agile web development framework with support for highly flexible and rapid database-driven web application development.
  • Zope Web application server
  • Plone Content management system built on top Zope
  • PureMVC Framework for Python
  • XForms—XForms has an integrated Model–view–controller architecture with an integral dependency graph that frees the programmer from specifically having to perform either push or pull operations.
  • Purenode Purenode is a website-programming tool. Its controllers are designed on a node-based interface, which may query the database and render templates.
  1. Reenskaug, Trygve. "MVC XEROX PARC 1978-79". Татаж авсан: 2008-06-09.
  2. "Product Review: WaveMaker's point-and-click Java". Infoworld. April 24, 2008. Татаж авсан: 2008-04-25.
  3. "JavascriptMVC Learning Center". Archived from the original on 2012-09-01. Татаж авсан: 2010-06-03.
  4. http://docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names