当我们想要在客户端到服务器的一个传递具有多个属性的数据时,可使用传输对象模式。传输对象也称为值对象。传输对象是一个具有getter/setter方法的简单POJO类,并且是可序列化的,因此可以通过网络传输。 它没有任何行为。服务器端业务类通常从数据库获取数据并填充到POJO类,并将其发送到客户端或通过值传递它。对于客户端,传输对象是只读的。 客户端可以创建自己的传输对象,并将其传递给服务器,以便一次性更新数据库中的值。 以下是这种类型的设计模式的实体。

  • 业务对象 - 业务服务使用数据填充传输对象。

  • 传输对象 - 具有仅设置/获取属性的方法的简单POJO。

  • 客户端 - 客户端请求或发送传输对象到业务对象。

实现实例

在这个实现实例中,将创建一个StudentBO作为业务对象,Student作为传输对象表示实体。

TransferObjectPatternDemo是一个演示类,在这里充当客户端,将使用StudentBO和Student演示传输对象设计模式。

服务定位器模式示例的结构如下图所示 -

Java传输对象模式的更多相关文章

  1. Java空对象模式

    在“空对象”模式中,空对象将替换NULL对象实例的检查.而不是检查一个空值,Null对象反映一个无关的关系(即什么也不做). 这种Null对象还可以用于在数据不可用时提供默认行为. 在空对象模式(Nu ...

  2. Java进阶篇设计模式之十三 ---- 观察者模式和空对象模式

    前言 在上一篇中我们学习了行为型模式的备忘录模式(Memento Pattern)和状态模式(Memento Pattern).本篇则来学习下行为型模式的最后两个模式,观察者模式(Observer P ...

  3. Java Socket实战之三:传输对象

    转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...

  4. Java设计模式之十三 ---- 观察者模式和空对象模式

    前言 在上一篇中我们学习了行为型模式的备忘录模式(Memento Pattern)和状态模式(Memento Pattern).本篇则来学习下行为型模式的最后两个模式,观察者模式(Observer P ...

  5. Java数据访问对象模式

    数据访问对象模式或DAO模式用于将低级数据访问API或操作与高级业务服务分离. 以下是数据访问对象模式的参与者. 数据访问对象接口 - 此接口定义要对模型对象执行的标准操作. 数据访问对象具体类 - ...

  6. netty传输java bean对象

    在上一篇博客(netty入门实现简单的echo程序)中,我们知道了如何使用netty发送一个简单的消息,但是这远远是不够的.在这篇博客中,我们来使用netty发送一个java bean对象的消息,但是 ...

  7. Java基础--对象的序列化

    所有分布式应用常常需要跨平台,跨网络,因此要求所有传的参数.返回值都必须实现序列化. 比如常见的Dubbo分布式平台,里面的对象实体类必须实现序列化才能在网络间传递 一.定义 序列化:把Java对象转 ...

  8. Java程序设计——对象序列化

    对象序列化的目标是将对象保存到磁盘中或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上,通过网络将这种二进制流传输到另 ...

  9. java的对象的总结:(PO,VO,DAO,BO,POJO)

    一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数 ...

随机推荐

  1. <读书笔记>《JS DOM编程艺术》

    2016/03/04 12:00 第一二章:JS的简史以及基本语法 1.P11 2.variable 3.P13    等于 4.P13 5.P14 转义字符 6.关联数组不是一个好习惯 7.P18 ...

  2. vue-cli3.0打包完自动压缩zip

    打包是我们常见的操作 一般打包完还需要压缩丢到服务器解压 首先 我们需要一个 filemanager-webpack-plugin npm i filemanager-webpack-plugin - ...

  3. JDK,JRE,JVM

    jdk JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器,实质都 ...

  4. vue input聚焦时,滚动至可视区域

    这里的代码来自vux,觉得vux处理得很好,在此记录一下.当我们在手机上填表单的时候,我们会希望正在填的input或者textarea会自动滚动至可视区域,方便我们边填写边查看内容.以前我的做法是,获 ...

  5. 推荐MarkDown编辑工具Typora--文本画流程图示例

    程序员界名言:talk is cheap, show me the code CODE: ### 8. 修改预留手机号-per.MCReservedMobilePhoneUpd #### 8.1业务规 ...

  6. 15-vim-缩排和重复执行

    缩排和重复执行 命令 功能 >> 向右增加缩进 << 向左减少缩进 . 重复上次命令 缩排命令在开发程序时,统一增加代码的缩进比较有用! 一次性在选中代码前增加4个空格,就叫做 ...

  7. 14-vim-替换命令-01-替换

    命令 英文 功能 工作模式 r replace 替换当前字符 命令模式 R replace 进入替换模式 替换模式 R命令进入替换模式,输入新字符替换当前光标所在位置的字符,替换完成后,按下ESC可以 ...

  8. SpringCloud-技术专区-Hystrix-使用指南

    Maven依赖配置 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...

  9. python获取网页源代码

    最简单的网页取源(不用模拟浏览器的情况) import requests def getHTML(url): try: r = requests.get(url,timeout=30) r.raise ...

  10. Elasticsearch添加Shield后TransportClient如何连接?

    Elasticsearch添加Shield后TransportClient如何连接? 时间 2015-12-28 10:24:01  旁门左道 原文  http://log.medcl.net/ite ...