协调多个对象之间的交互—中介者模式(一)
)。在QQ聊天中,一般有两种聊天方式:第一种是用户与用户直接聊天,第二种是通过QQ群聊天,如图20-1所示。如果我们使用图20-1(A)所示方式,一个用户如果要与别的用户聊天或发送文件,通常需要加其他用户为好友,用户与用户之间存在多对多的联系,这将导致系统中用户之间的关系非常复杂,一个用户如果要将相同的信息或文件发送给其他所有用户,必须一个一个的发送,于是QQ群产生了,如图20-1(B)所示,如果使用QQ群,
一个用户就可以向多个用户发送相同的信息和文件而无须一一进行发送,只需要将信息或文件发送到群中或作为群共享即可,群的作用就是将发送者所发送的信息和
文件转发给每一个接收者用户。通过引入群的机制,将极大减少系统中用户之间的两两通信,用户与用户之间的联系可以通过群来实现。

图20-1 QQ聊天示意图
20.1 客户信息管理窗口的初始设计
|
图20-2 “客户信息管理窗口”界面图 |

图20-3 “客户信息管理窗口”原始类图
-
//按钮类
-
class
Button { -
private List list; -
private ComboBox cb; -
private TextBox tb; -
...... -
-
//界面组件的交互 -
public void change() { -
list.update(); -
cb.update(); -
tb.update(); -
} -
-
public void update() { -
...... -
} -
...... - }
-
-
//列表框类
-
class
List { -
private ComboBox cb; -
private TextBox tb; -
...... -
-
//界面组件的交互
-
public void change() { -
cb.update(); -
tb.update(); -
} -
-
public void update() { -
...... -
} -
...... - }
-
-
//组合框类
-
class
ComboBox { -
private List list; -
private TextBox tb; -
...... -
-
//界面组件的交互
-
public void change() { -
list.update(); -
tb.update(); -
} -
-
public void update() { -
...... -
} -
...... - }
-
-
//文本框类
-
class
TextBox { -
public void update() { -
...... -
} -
...... - }
【作者:刘伟 http://blog.csdn.net/lovelion】
浙公网安备 33010602011771号