代理模式与桥接模式 备忘

代理模式是建立在客户端和 实现层之间的屏障,只向客户端展现其关心的一部分,而屏蔽掉其职责之外的部分,类似于数据库中视图的功能。实现类可以实现很多的接口,但其中只有一个接口是与具体某个客户端相关的,这样,就不需要向客户端展示其不相关的部分。代理类通过调用实现类的实现方法来实现这个接口(除了调用实现类的相应方法,代理类本身不干其他的事情)。这样也使得业务逻辑更加清晰。

桥接模式相比代理模式要复杂,在jdk中最常见的一个例子就是从文本中读入数据到内存中,首先将文本读成Stream,然后用根据这个Stream新建一个Reader,完成从字节流到字符流的转变,再有可能用这个普通的Reader新建一个BufferedReader。这样就完成了三个方向的变化:从File到内存中的字节、从字节转换为字符、将字符转换为缓冲模式。其中读入Stream、Reader都有各种各样的实现类,但只需要遵循接口规范,就可以组合使用。

最终实现将File读入到内存中的字符,不是通过一个类一个类的层层继承实现的,而是通过不同的接口的实现类之间的组合方式实现的,各个接口之间分工明确(有点类似TCP/IP协议中的分层结构了),每个接口的实现类都有一个变化因素。这样形成的代码层次清晰,结构简单,十分易于维护和扩展。参见http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html,这篇博文也讲的十分清除,只是举例过于生硬,可以直接用jdk中现成的应用来讲解的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值