1、问题
在面向对象系统中,有些对象由于某种原因(比如创建对象的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给调用者带来麻烦,那么如何在不损失接口透明性的情况下,解决这些麻烦...2、解决方案
通过架设一层中间层,让这层中间层来解决上面的麻烦,也就是我们所说的代理。大致的结构转换图如下:
?
转换成
?...(如协议的处理等),客户端调用代码则不需要关注这些细节
/// 只需要关注业务
///
public class UserProxy...,关于字符串实例唯一性和字符串的不变性,参考字符、字符串和文本的处理之String类型,可以得出下面的结构图:
?...,但是String字符串对象就不能修改.大致的结构图如下:
?