一些领域数据置身于GUI控件中,而领域函数需要访问这些数据

重构:将该数据复制到一个领域对象中。建立一个Observer 模式,可以同步领域对象和GUI 对象内的重复数据。

动机

一个分层良好的系统,应该将处理用户界面和处理业务逻辑的代码分开。之所以这样做,有以下2点原因:

1、可能需要使用不同的用户界面来表现相同的业务逻辑,如果同时承担两种责任,用户界面会变得过分复杂;

2、与GUI 隔离之后,领域对象的维护和演化都会更容易。

尽管可以轻松地将“行为”划分到不同部位,“数据”却往往不能如此。同一项数据有可能既需要内嵌于GUI 控件,也需要保存于领域模型里。自从MVC 模式出现后,用户界面框架都使用多层系统来提供某种机制,使你不但可以提供这类数据,并保持它们同步。

如果你遇到的代码是以两层方式开发,业务逻辑被内嵌于用户界面之中,你就有必要将行为分离出来。其中的主要工作就是函数的分解和搬移。但数据就不同了:你不能仅仅只是移动数据,必须将它复制到新的对象中,并提供相应的同步机制。

Duplicate Observed Data(复制“被监视数据”)相关推荐

  1. mysql load data infile 重写_mysql load data infile 命令的数据导入

    文章介绍了mysql load data infile 命令的数据导入,该方式比直接的insert的效率要高,按照官方的说法是要比insert语句快上20倍,有需要的朋友可参考. 使用方式如下: 代码 ...

  2. 如何跨服务器复制表中数据

    如何跨服务器复制表中数据 http://www.cnblogs.com/zengxlf/archive/2009/06/22/1508178.html 不同服务器数据库之间的数据操作 不同数据库之间复 ...

  3. 【Vue2.0】—Vue监视数据的原理(五)

    [Vue2.0]-Vue监视数据的原理(五) <body><div id="root"><h1>学生的基本信息</h1><bu ...

  4. sql server 快照_添加新文章,删除文章,更改快照文件夹路径和SQL Server复制中的数据筛选器行

    sql server 快照 In the last articles, we have learned Configuring Snapshot and Transactional SQL Serve ...

  5. 学习使用ADO.NET Data Services (ADO.NET 数据服务框架) - Part 1

    学习使用ADO.NET Data Services (ADO.NET 数据服务框架) ADO.NET Data Services Framework是在.NET Framework 3.5 SP1新推 ...

  6. mysql 最大值65536_SQL server事物复制报错:要复制的 LOB 数据的长度(xxxxx)超出了配置的最大值 65536...

    (一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(订阅)后,生产数据库业务出现了报错信息: 要复制的 LOB 数据的长度(xxxxx)超出了配置的最大值 65536.请使 ...

  7. BIG DATA 神奇的大数据 - Hadoop(Linux)环境搭建与部署

    自说 Hadoop的运行环境有两种,分别是windows和linux系统,Linux更适合作为服务器操作系统,也更加方便使用. 学习路径 BIG DATA 神奇的大数据 - hadoop简章 准备工作 ...

  8. R语言data.table进行滚动数据连接,滚动连接通常用于分析涉及时间的数据(例如商业销售活动和对应的广告投放的安排之之间的关系)实战:实战和动画说明滚动数据连接的形式及方法

    R语言data.table进行滚动数据连接,滚动连接通常用于分析涉及时间的数据(例如商业销售活动和对应的广告投放的安排之之间的关系)实战:实战和动画说明滚动数据连接的形式及方法 目录

  9. R语言data.table进行滚动数据连接,滚动联接通常用于分析涉及时间的数据实战(动画说明滚动数据连接的形式):rolling joins data.table in R

    R语言data.table进行滚动数据连接,滚动联接通常用于分析涉及时间的数据实战(动画说明滚动数据连接的形式):rolling joins data.table in R 目录

最新文章

  1. 用 subsetting 限制连接池中的连接数量
  2. 字符串匹配——枚举法
  3. 大数据分析必须要会的数据预处理操作(一)!!!
  4. 周鸿祎回应年会特等奖「免裁券」;微信放开 5000 人好友上限;Firefox 72 正式发布| 极客头条...
  5. P2604 [ZJOI2010]网络扩容
  6. Ckeditor编辑器的配置使用
  7. 怎么用wps做区域分布图_《wps频数分布表怎么做》 在EXCEL中如何做频率分布图
  8. win7(win10)更改“文件类型显示图标“的终极修改方法
  9. 【Python NLP】:搜狗语料库-新闻语料处理
  10. IDEA直接查找快捷键来修改这个快捷键
  11. Pixelmator Pro 2.1.2 图像处理软件
  12. 通用人工智能:我们是否接近,尝试是否有意义?
  13. 浅谈To B与To C的区别
  14. 韩语计算机术语大全,韩语学习:韩语计算机、互联网术语 - 英语家园
  15. 360校园招聘2015届技术类笔试题(一)
  16. LightGBM 原理、代码最全解读!
  17. Unity3D 200个插件免费分享
  18. DAS\NAS\SAN\IPSAN区别
  19. HNUST 2204 买水果
  20. 潮人专属好物!HCK哈士奇x可口可乐联名限量款小冰吧

热门文章

  1. 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较
  2. 深度学习技术在机器阅读理解应用的研究进展
  3. 【HTML/CSS】HTML5和CSS3的新特性
  4. 04.MyBatis别名的设置和类型转换器
  5. Pmwiki基本编辑功能
  6. 洛谷P1558 色板游戏
  7. OpenGL6-纹理动画
  8. 【原】StreamInsight 浅入浅出(四)—— 例子
  9. [转载]SQL SERVER 2008 阻止保存要求重新创建表的更改
  10. 3.2_ 1_ 虚拟内存的基本概念