模型和视图分离原则

简介: 模型和视图分离原则

该原则至少具有两部分:

1. 不要将非UI对象直接与UI对象连接或耦合。例如,不要让Sale软件对象(非UI“领域对象”)引用Java Swing JFrame窗口对象。因为窗口与某个应用相关,而(理想情况下)非窗口对象可以在新应用中重用或附加到新界面。

2. 不要在UI对象方法中加入应用逻辑(例如税金的计算)。UI对象应该只初始化UI元素、接受UI事件(例如鼠标点击按钮)、将应用逻辑的请求委派到非UI对象(例如领域对象)。

模型-视图分离原则规定,模型(领域)不应该与视图(UI)对象连接。例如,Register或Sale对象不应该直接向GUI对象,ProcessSaleFrame发送,请求其显示,改变颜色,关闭等。

观察者模式(O’bserver)模式是该原则的合理扩展,即领域对象只能PropertyListener(java中的常用接口)的接口向视图的UI对象发送消息。基于该模式,领域对象不知道UI对象的存在。领域对象只把消息发送给了实现了PropertyListener接口的对象,该更进一步的应用,领域对象封装了与应用逻辑相关的信息和行为。窗口类相对简单,负载输入,输出,以及捕获GUI事件,但是并不应用数据和应用逻辑。

模型-视图分离的动机包括:

  • 支持内聚的模型定义,这些定义只关注领域过程,而不是用户界面。
  • 许对模型和用户界面层分别进行开发。
  • 是界面的需求变更对领域层的影响最小化。
  • 允许新视图能够被方便地连接到现有的领域层之上,而不会对领域层产生影响。
  • 允许对同一模型对象同时使用多个视图,例如销售- 信息同时具有表格和业务图表视图。
  • 允许模型层的运行不依赖于用户界面层,例如,消息处理或批处理模式的系统。
  • 允许简模型层能够简便地移植到另一用户接口框架下。

作者:glowd
原文:https://blog.csdn.net/zengqiang1/article/details/52710985
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
声画分离模型PixelPlayer
【2月更文挑战第12天】声画分离模型PixelPlayer
27 5
声画分离模型PixelPlayer
|
4月前
分层模型的优点
分层模型的优点。
58 0
|
6月前
合成复用原则~
合成复用原则~
|
8月前
|
设计模式 Oracle 关系型数据库
软件架构设计原则之合成复用原则
合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/聚合(contanis-a)而不是继承关系达到软件复用的目的。可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。
79 0
|
11月前
|
存储 架构师
「TOGAF架构框架」ArchiMate视图指南(7):信息结构视图和服务实现视图
「TOGAF架构框架」ArchiMate视图指南(7):信息结构视图和服务实现视图
「TOGAF架构框架」ArchiMate视图指南(7):信息结构视图和服务实现视图
|
11月前
|
架构师
「TOGAF架构框架」ArchiMate视图指南(6):信息结构视图和服务实现视图
「TOGAF架构框架」ArchiMate视图指南(6):信息结构视图和服务实现视图
|
11月前
|
架构师 中间件 数据库
「TOGAF架构框架」ArchiMate视图指南(5):技术视图和技术使用视图
「TOGAF架构框架」ArchiMate视图指南(5):技术视图和技术使用视图
|
11月前
|
存储 架构师
「架构框架」ArchiMate视图指南(4):应用使用视图和实现部署视图
「架构框架」ArchiMate视图指南(4):应用使用视图和实现部署视图
|
11月前
|
架构师 中间件 数据库
「架构框架」ArchiMate视图指南(5):技术视图和技术使用视图
「架构框架」ArchiMate视图指南(5):技术视图和技术使用视图
|
12月前
|
设计模式 测试技术 持续交付
深入抽象和动态建模(1)
深入抽象和动态建模
113 0
深入抽象和动态建模(1)