A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马张健 中级黑马   /  2012-5-18 22:50  /  1649 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

DatagramSocket与DatagramPacket这两个类是否是一种装饰模式?  
把DatagramSocket比作一个港口,一个码头,DatagramPacket比作运送货物的集装箱,港口提供了一种运送货物的功能,能不能把港口理解为是这个集装箱的一个加强类呢?
那么这是否是一种装饰模式呢?
我本人觉得这个两个类有点像装饰模式,有觉得不太像,求高手解释一下。

1 个回复

倒序浏览
      严格的来说,它们不是装饰模式,而是一种通信的机制。但DatagramPacket能实现确定数据,并封装成数据包的功能,相当于将数据打包,打包时加入了一些标记头信息,也可类似看作是对数据的装饰。DatagramSocket实现创建udp服务的功能。
      DatagramSocket用来发送和接收数据报包的套接字。数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。
     DatagramPacket表示数据报包。数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。
     可以认为集装箱(DatagramPacket)只有通过港口(DatagramSocket),才能将货物运送出去,DatagramSocket更像是DatagramPacket的先类,即必须要有DatagramSocket存在,DatagramPacket才能发送数据包
      这更像是一种递进的通信模式。装饰一般只是针对数据而进行的操作,而这两个类不光涉及数据的处理,还涉及通信的管道。所以,严格意义上说,不算是装饰类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马