设计模式开始-第三天

引用大佬的blog:http://blog.csdn.net/lovelion/article/details/17517213



7.适配器模式
特点:适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。
也就是说:当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,
而这个过程对客户类是透明的,客户类并不直接访问适配者类


适配器模式可分为对象适配器与类适配器两种
在对象适配器模式中,适配器与适配器之间是关联关系
在类适配器模式中,适配器与适配器之间是继承关系
对象会持有适配器对象的父接口的引用(针对抽象目标接口编程)


8.桥接模式;
桥接模式其实说起来是比较简单的:
一句话描述:将一个抽象部分的多个具体例子与它们的实现部分相分离
EG:windos系统的文件增删改查与Unix系统的文件增删改查 增加linux系统的文件增删改查...
1.各个系统文件的增删改查不同(各种不同的文件增删改查实现)
2.各个系统不同 (3中或者更多的系统)
软件系统中某个类存在两个独立变化的维度,就可以使用该模式


9.组合模式:
组合模式也比较简单:该模式最形象的描述就类似与树这种数据结构
在使用组合模式时,根据抽象构件类的定义形式,我们可将组合模式分为透明组合模式和安全组合模式两种形式:
 (1) 透明组合模式
该模式中叶子节点与子节点具有相同的方法,但叶子节点在增删改是不支持实现的(抛异常)
而子节点有对应的实现,而且子节点会有一个持有叶子节点的集合用来支持增删改等操作
叶子节点与子节点都会有格子对应的业务逻辑实现
(2) 安全组合模式
该模式中叶子节点与子节点都只具有业务逻辑实现!!
安全组合模式的缺点是不够透明,因为叶子构件和容器构件具有不同的方法,
且容器构件中那些用于管理成员对象的方法没有在抽象构件类中定义,
因此客户端不能完全针对抽象编程,必须有区别地对待叶子构件和容器构件


组合模式的优缺点:
缺点:
1.在增加新构件时很难对容器中的构件类型进行限制使用组合模式时,不能依赖类型系统来施加这些约束,
因为它们都来自于相同的抽象层,在这种情况下,必须通过在运行时进行类型检查来实现,这个实现过程较为复杂。
优点:
(1) 组合模式可以清楚地定义分层次的复杂对象,表示对象的全部或部分层次,
它让客户端忽略了层次的差异,方便对整个层次结构进行控制。


(2) 客户端可以一致地使用一个组合结构或其中单个对象,不必关心处理的是单个对象还是整个组合结构,
简化了客户端代码。


(3) 在组合模式中增加新的容器构件和叶子构件都很方便,无须对现有类库进行任何修改,符合“开闭原则”。
 4) 组合模式为树形结构的面向对象实现提供了一种灵活的解决方案,
通过叶子对象和容器对象的递归组合,可以形成复杂的树形结构,但对树形结构的控制却非常简单。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值