Duplicate Observed Data(复制“被监视数据”)

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

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

动机

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Landing.AI创始人及CEO 吴恩达:人工智能与先进制造

来源:亿欧概要:工业互联网是工业革命和新一代科技革命的交汇,这个变革内涵非常广,包含很多新的业务模式、新的业态、新的产业机遇,同时也会带来很多新技术的创新。工业互联网是工业革命和新一代科技革命的交汇&#xf…

[导入]Ajax初试

Ajax已经听说了很长时间了,一致没有使用,感觉应该是不错的。今天作了一个简单的测试,嘿嘿,还不错!文章来源:http://blog.csdn.net/AloneSword/archive/2006/04/30/699138.aspx转载于:https://www.cnblogs.com/wanna51/…

计算机考研落榜了怎么办,考研落榜了怎么办

路漫漫其修远兮,吾将上下而求索什么东西或许对别人有用,但是对我们自己一点用都没有呢?那就是安慰人的话。什么“尽吾志也,而不能至者,可以无悔矣”,什么“是非成败转头空,青山依旧在&#xff0…

详解LSTM:神经网络的记忆机制是这样炼成的

来源:人工智能头条编译 | AI100第一次接触长短期记忆神经网络(LSTM)时,我惊呆了。原来,LSTM是神经网络的扩展,非常简单。深度学习在过去的几年里取得了许多惊人的成果,均与LSTM息息相关。因此&a…

个别学生计算机辅导计划,网络学院计算机基础统考辅导计划.doc

PAGEPAGE 37网络学院计算机基础统考辅导共分四次课的时间,2008年3月15日  08:3011:302008年3月22日  08:3011:302008年3月22日  14:0017:002008年4月05日  08:3011:30统考情况简要分析考试方式:机考考试时间:90分钟满分:10…

Change Unidirectional Association to Bidirectional(将单向关联改为双向关联)

两个类都需要使用对方特性,但其间只有一个单向连接 重构:添加一个反向指针,并使修改函数能够同时更新两条连接 由哪个类负责控制关联关系。建议单个类来操控,因为这样就可以将所有处理关联关系的逻辑安置于一地。 1、如果两者都是…

我的作品-图书馆信息管理系统

这曾经是我的数据库课程设计中开发的程序,而且“有幸”当上了我以前高中同学的毕业设计。下面公布几张图片待我的那位同学毕设通过后我就公开源代码!哈哈 转载于:https://www.cnblogs.com/wpwen/archive/2006/05/14/399914.html

计算机不能显示可移动磁盘咋办,U盘插上电脑不显示“可移动磁盘”该怎么办...

U盘插上电脑不显示“可移动磁盘”该怎么办重新分配盘符1、右击我的电脑,在弹出的快捷菜单中选择治理命令,进入到计算机治理窗口。2、依次展开存储/可移动存储,单击磁盘治理一项,在窗口右侧,看到U盘运行状态为良好&…

漂亮图片演示ajax制作教程-lightbox

漂亮图片演示ajax制作教程-lightbox 这种效果就像你关闭计算机时所得到的那种效果。在不刷新页面的情况下实现大图片浏览。过渡完美。大家可以看看效果:http://www.evaxp.com/pic/这个演示我是用golive做得。手动添加。错乱排列。主要就是添加这么一段代…

Encapsulate Collection(封装集合)

函数直接返回了一个集合 public class Person {private Set<Course> courses;public Set<Course> getCourses() {return courses;}public void setCourses(final Set<Course> courses) {this.courses courses;} } 重构&#xff1a;让这个函数返回该集合的…

CNNIC报告:我国网民达7.72亿 人工智能取得重要进展

来源&#xff1a;网络大数据概要&#xff1a;报告显示&#xff0c;截至2017年12月&#xff0c;我国网民规模达7.72亿&#xff0c;全年共计新增网民4074万人。互联网普及率为55.8%&#xff0c;较2016年底提升2.6个百分点。中国互联网络信息中心(CNNIC)今日发布第41次《中国互联网…

sakura计算机谱子,【14.08.13自拟】SAKURA急求生物股长的简谱

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼生物股长 - Sakura夏游云 记谱1bA356 [3][2] [3][2] [1]7[1] 7[1] 753356 [3][2] [3][2] [1]7[1][2] 5 [5][2][3]356 [3][2] [3][2] [1]7[1] 7[1] 75367[1] 675356 67[1] 67 [5][3]间奏56[3][2][1] 7 5 3 2 1 【[5] [3]】56[3][2][…

Javascript里使用Dom操作Xml

一&#xff0e;本笔记使用的Xml文件 二&#xff0e;IXMLDOMDocument/DOMDocument简介 2&#xff0e;1 属性 2&#xff0e;1&#xff0e;1 parseError 2&#xff0e;1&#xff0e;2 async. 2&#xff0e;1&#xff0e;3 xml 2&#xff0e;1&#xff0e;4 text 3 2&am…

Replace Type Code with Class(以类取代类型码)

类之中有一个数值类型码&#xff0c;但它不影响类的行为 public class Person {public static final int O 0;public static final int A 1;public static final int B 2;public static final int AB 3;private int bloodGroup;public void setBloodGroup(int arg) {this.…

AI 识别抑郁症正确率高达八成,但AI+精神健康还有很长的路要走

来源&#xff1a; 智能相对论&#xff08;aixdlun&#xff09;近年来&#xff0c;“抑郁症”一词越来越多的被人们提起&#xff0c;不少名人如白岩松、崔永元等都曾表示陷入过抑郁症的痛苦&#xff0c;而抑郁症患者不堪病痛而自杀的新闻也屡见不鲜。生命的“陨落“&#xff0c;…

关于服务器虚化的优势,vmware虚化优势.docx

vmware虚化优势VMWARE服务器虚拟化介绍利用虚拟化基础架构技术&#xff0c;可以不断整合工作负载&#xff0c;从而充分利用服务器并降低运营成本。该基础架构技术不但使系统管理员能够管理更多的服务器&#xff0c;而且在置备新的软件服务和维护现有软件服务时&#xff0c;具有…

在程序中生成PDF

这几天一直在关注这方面的事情:在Delphi中将扫描&#xff0c;排版&#xff0c;生成pdf文档 并压缩入库&#xff0c;提取文本进行全文检索等一系列对文本的控制扫描部分&#xff1a;使用delphi TWain组件可以方便的得到Image再通过奥威目前的文本控制技术在RichView里生成相关文…

上万家物联网公司会被“政策死”吗

来源&#xff1a;财经十一人概要&#xff1a;有时候&#xff0c;打败你的可能不是新技术&#xff0c;只是一份文件。这次政策风波涉及两个问题&#xff0c;一是哪种物联网技术路线更合适&#xff0c;二是通过行政手段干预市场竞争是否合理。“有时候&#xff0c;打败你的可能不…

Replace Type Code with Subclasses(以子类取代类型码)

有一个不可变的类型码&#xff0c;它会影响类的行为 public class Employee {static final int ENGINNER 0;static final int SALESMAN 1;static final int MANAGER 2;private int type;public Employee(int type) {this.type type;}public int getType() {return type;} …

.net 中使用socket (c#)

前几天在网上看到关于使用socket 编写聊天程序的一个例子&#xff0c;学习了一下&#xff0c;网上的例子是VB.NET的&#xff0c;自己改写成了C#的 大同小异&#xff0c;只作为记录 &#xff1a; 发送端usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.Co…