官术网_书友最值得收藏!

The Model-View-Presenter pattern

Model-View-Presenter is a variation of the original MVC pattern that we discussed previously. Both MVC and MVP target the separation of concerns but they are different on many fundamental aspects. The presenter in MVP has the necessary logic for the view. Any invocation from the view gets delegated to the presenter. The presenter also observes the model and updates the views when the model updates. Many authors take the view that because the presenter binds the model with views, it also performs the role of a traditional controller. There are various implementations of MVP and there are no frameworks that offer classical MVP out of the box. In implementations of MVP, the following are the primary differences that separate MVP from MVC:

  • The view has no reference to the model
  • The presenter has a reference to the model and is responsible for updating the view when the model changes

MVP is generally implemented in two flavors:

  • Passive view: The view is as na?ve as possible and all the business logic is within the presenter. For example, a plain Handlebars template can be seen as a passive view.
  • Supervising controller: Views mostly contain declarative logic. A presenter takes over when the simple declarative logic in the view is insufficient.

The following figure depicts MVP architecture:

主站蜘蛛池模板: 五原县| 于都县| 河北省| 柯坪县| 左权县| 鄂托克前旗| 贺州市| 五华县| 平南县| 兴文县| 云安县| 石门县| 沈丘县| 分宜县| 泊头市| 镇原县| 崇州市| 安义县| 昆山市| 台中市| 峨眉山市| 凌云县| 龙江县| 澄城县| 霍邱县| 酒泉市| 济南市| 临沭县| 湘西| 柳州市| 安图县| 余江县| 昌宁县| 乌兰浩特市| 安塞县| 宣化县| 府谷县| 综艺| 陆河县| 丁青县| 集贤县|