模式开始-第四天

来源:互联网 发布:怎样申请旺旺淘宝账号 编辑:程序博客网 时间:2024/05/20 01:08


引用大佬的blog:http://blog.csdn.net/lovelion/article/details/17517213
10.装饰模式
装饰模式是一种用于替代继承的技术,它通过一种无需定义子类的方式来给对象动态增加职责,使用对象之间的关联
关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以
增加新的方法以扩充原有类的功能
在实际使用过程中,装饰模式分为两种
1.透明装饰模式中,要求客户端完全针对抽象编程。具体装饰类与被装饰类都是使用抽象构件定义
2.半透明装饰模式,该模式的设计难度较大,而且有时我们需要单独调用新增的业务方法
装饰类中具有不在抽象构件中的装饰方法,因此为了能够调用到新增方法,我们必须用具体装饰实现来定义装饰类
对于客户端来说,半透明装饰模式中,具体的装饰对象需要使用具体类定义
而在透明装饰模式中,具体的装饰对象使用抽象构件定义


11.外观模式:
外观模式封装了子系统的功能,在外部调用时候直接使用外观对象来完成对应的逻辑处理.
所有涉及到与多个业务对象交互的场景都可以考虑使用外观模式进行重构。
外观模式的缺点:
1.不能很好地限制客户端直接使用子系统,如果对客户端访问子系统做太多的限制则减少了可变性和灵活性。
2.如果设计不当,增加新的子系统可能需要修改外观类的源代码,违背了开闭原则


适用场景
1.为访问一系列复杂子系统提供一个简单入口
2.客户端程序与多个子系统之间存在很大的依赖性,引入外观类可以将子系统与客户端解耦
3.在层次化结构中,可以使用外观模式定义系统中每一层的入口,层与层之间不直接产生联系,而通过

外观类建立联系,降低层之间的耦合度


享元模式有点迷迷的 下一次在更新

原创粉丝点击