1.简单化-信使messenger+集合型参数(collecting parameter)

?

?

以下就开始我们的设计模式之旅吧!其实这里我说一下题外话先,为什么我要写博客,其实写博客这个我很久就想写,一开始想写一个很威的博客,但是发现还是没什么人看我的博客,但是我却发现了意外的收获,有些时候只看书,是发现不了你不懂什么的,必须写出来,通过写这一个途径,你会慢慢的去挖掘这个问题的深度,一步一步的揭开面纱,你会发现这是一个有趣的过程...

?

?

?

?

简单化:

在研究复杂技术之前,了解使代码简单明了的基本方法是很用帮助的。其实这一句说到了我的心里面,很多时候我把问题想的很复杂,功能很全面,考虑了很多东西,但是一开始入手编程,连最基本的功能都遇到了砍,无疑我的心里压力是非常大的,慢慢的编程下去,发现这是一个不可能实现的认为,慢慢的,这个项目就死掉了。对于现在来说,我更偏向于代码的结构是一种思想,而这个是要在实现基本功能的情况前提上,设计模式不是一下子就出来的,先简单后复杂。

?

?

?

?

信使模式(messenger):

这个我找一下,提及到的资料不多。不过的确是一个很好的东西;其实最简单的东西才是最常用,最有用的,最实际的。而信使模式很好的诠释了这个概念。由名字就可以发现他的含义,把需要传的东西包装在信封内,然后传输。

?

示例代码:

//一个简单的信息类

class message {

public String recName;

public String sendName;

public String msg;

?

?

//构造方法

public message(String?recName,String sendName,String?msg){

this.recName=recName;

this.sendName=msg;

this.msg=msg;

}

}

?

?

?

?

//定义一个测试类

public class TestDemo{

?

public static void main(String[] str){

message m=new message("shadow","dan","hello,are you ok?");

translate(m);

}

?

?

?

//这里就使用了模式,传入一个对象,传输

public static translate(message m){

?

System.out.println(m.recName+m.msg+m.sendName);

}

}

?

?

?

因为messenger 只是用来传送数据,它所传送的数据通常声明为公有的,以便于

存取。但是,你可以根据自己的需要把它们声明成私有的。

?

这个信使模式,是我平时经常用到的,也是非常好用的一个东西;

?

?

?

集合型参数 (collecting parameter)

这个是信使的兄弟啊,为什么这么说呢,因为信使是传输对象,而集合型参数的作用就是将传输进来的对象当成是收集的容器,一个比喻可以这样子,就是你是信使,给我一个信封,这个信封这时候是一个list(一个大信封),然后我用这个大信封去收集好多个其他的东西,放在里面。

示例

public class test {

public static void main(String[] args){

List list=new ArrayList();

for(int i=0;i<15;i++){

collect(list);

}

System.out.println(list.get(5));

}

?

//通过不断调用这个方法,而达到收集的目的,这里为了简单起见,我只定义一个方法,其实你可以定义几个的

只要传入的参数是list就好

public static void collect(List list){

?

list.add("hello");

}

}

?

其实书上的例子写的很好,不过我尽量将东西简单化,只要将其精髓表现出来就好,然后再进行深一步的变形就ok了

Collecting parameter 必须支持通过某些方法设置或者插入一些值。根据这个定

义,信使可以当作collecting parameter 来用,前提是collecting parameter 是由它所传递给的方法来修改的。

?

?

这两种模式其实可以演变出许多很好的效果的,比如说集合型参数可以用来收集结果等等,有一句话说的很对:设计模式的每一个模式我都理解,他的内涵我都明白,但是我就是不知道在哪里用,什么时候用,用哪个好? ?其实这个也是困惑了我好久的地方,我的经验就是有很多模式很难在第一次编写这个项目的时候使用上的,只有在下一次重构的时候,发现原来这里是可以用这个模式,然后不断的重构,实现这个模式,等到后面又会发现原来那个模式在这里更加适合,更加好用,一直这样不断的总结,不断的去尝试,然后就会得到一些良好的编程风格,也就是越来越优雅。

java 信使服务_1.简单化-信使messenger+集合型参数(collecting parameter)相关推荐

  1. java 信使服务_java – 自行车信使/ TSPPD与OptaPlanner

    亲爱的OptaPlanner专家! 我想使用OptaPlanner(或类似的开源Java框架)来优化自行车信使服务的路线.让我们假设5个信使必须从某个来源获取30个信封并将它们传送到某个目的地: X( ...

  2. java 信使服务_Android 绑定类型服务---使用信使(Messenger)

    如果需要服务跟远程进程通信,那么就可以使用Messenger对象来给服务提供接口.这种技术允许你在不使用AIDL的情况下执行进程间通信(IPC). 以下是信使(Messenger)对象的使用概要: 1 ...

  3. 信使服务 (Messenger)

    对于Messenger您可能会立即想到一些人利用这个发垃圾广告. 但是在某些时候,我们利用这个服务来给管理员发送警告还是非常不错的. /* ****************************** ...

  4. 怎样禁止系统的信使服务(转)

    在Windows XP中,"信使服务"在服务列表中名称为"Messenger",该服务用来传输客户端和服务器之间的Net Send和Alerter(报警器)服务 ...

  5. windows系统的信使服务

    那是系统的信使服务 其用法如下: 以次点击 开始--运行--输入cmd打开命令提示窗口. 然后输入net send 对方的IP 你要说的话 即可 例如: "net send 192.168. ...

  6. 利用Messager信使服务在局域网内发信息

    利用Messager信使服务在局域网内发信息在局域网中,我们常常想将一些消息告诉在附近房间的人,除了跑过去说或打电话外,一般情况下,我们都使用QQ类软件,或发电子邮件.但两者都有缺点,电子邮件不是实时 ...

  7. 使用信使服务批量发送信息

    使用信使服务批量发送信息 信使服务 设计需求 VBS设计 过程中已解决的问题 尚未解决的问题 2021.2.2更新:读取AD中计算机名的时候排除了已禁用的计算机 信使服务 信使服务在XP系统中是用ne ...

  8. Visual C#实现Windows信使服务

    现在有很多网络管理软件都具备网络上信息实时传送的功能,虽然有些网络通讯软件功能比较强大,有的软件不仅可以传送文本信息,还可以传送二进制文件等.但 它们都有一个无法克服的缺点,那就是分发比较困难,信息传 ...

  9. 信使服务、防火墙、XP的个性化设置

    [实验名称] 信使服务.防火墙.XP的个性化设置<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of ...

最新文章

  1. Android定位方式和测试方法
  2. 刚装了fedora 17,装机必备,解决视频格式和中文输入法。
  3. java实现winpcap_基于winpcap的ARP发送程序
  4. ioctl 函数 参数 详解
  5. 数据-第10课-循环链表
  6. 使用微PE安装Windows系统——写给小白
  7. 对格斗游戏的一点想法
  8. E3 1200 系列服务器,至强E3-1200 v2增加图形核心_服务器评测与技术-中关村在线
  9. vue脚手架安装步骤详情
  10. python--快速启动Server
  11. TypeError: descriptor ‘WhichOneof‘ requires a ‘google.protobuf.pyext._message.CMessage‘ object but r
  12. 【锁屏】 Ubuntu20.04 锁屏快捷键无反应的解决方法
  13. 小白学习,歌词解析(全)
  14. 水星路由器短信认证配置流程
  15. 干货!老司机带你了解网易视频云互动直播,你想看的全都有
  16. linux arm fpu初始化,如何确定Linux主板是否使用硬件FPU?
  17. Filter Listener
  18. Cortex-M系列处理器对比
  19. CTFshow web3 菜鸡刷题记录
  20. 一个有趣好玩的HTML网页

热门文章

  1. sql 获取24小时列表
  2. macbook pro m1 安全性与隐私无法解锁,鼠标点击无响应,谷歌浏览器,postman无法选择上传文件
  3. python数据可视化——plt.plot()
  4. linux 连接投影仪软件,linux连接投影机方法介绍
  5. 磷酸铁锂溶液除钙镁技术分析
  6. 酷派手机权限开启方法
  7. python语言合法命名-以下不是Python语言合法命名的是:
  8. 针对构架师的.NET 3.0介绍
  9. HDU-1494 跑跑卡丁车
  10. 如何在BIOS中设置电脑定时开机