黑马程序员技术交流社区

标题: DatagramSocket与DatagramPacket [打印本页]

作者: 黑马张健    时间: 2012-5-18 22:50
标题: DatagramSocket与DatagramPacket
DatagramSocket与DatagramPacket这两个类是否是一种装饰模式?  
把DatagramSocket比作一个港口,一个码头,DatagramPacket比作运送货物的集装箱,港口提供了一种运送货物的功能,能不能把港口理解为是这个集装箱的一个加强类呢?
那么这是否是一种装饰模式呢?
我本人觉得这个两个类有点像装饰模式,有觉得不太像,求高手解释一下。
作者: 彩虹    时间: 2012-5-19 00:17
      严格的来说,它们不是装饰模式,而是一种通信的机制。但DatagramPacket能实现确定数据,并封装成数据包的功能,相当于将数据打包,打包时加入了一些标记头信息,也可类似看作是对数据的装饰。DatagramSocket实现创建udp服务的功能。
      DatagramSocket用来发送和接收数据报包的套接字。数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。
     DatagramPacket表示数据报包。数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。
     可以认为集装箱(DatagramPacket)只有通过港口(DatagramSocket),才能将货物运送出去,DatagramSocket更像是DatagramPacket的先类,即必须要有DatagramSocket存在,DatagramPacket才能发送数据包
      这更像是一种递进的通信模式。装饰一般只是针对数据而进行的操作,而这两个类不光涉及数据的处理,还涉及通信的管道。所以,严格意义上说,不算是装饰类




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2