利用外观模式封装类的变化
2009-02-13 23:05
197 查看
1,意图
外观模式定义了一个把子系统的一组接口集成在一起的高层接口,以提供一个一致的处
理方式,其它系统可以方便的调用子系统中的功能,而忽略子系统内部发生的变化。
2,使用场合
1)为一个比较复杂的子系统,提供一个简单的接口。
2)把客户程序和子系统的实现部分分离,提高子系统的独立性和可移植性。
3)简化子系统的依赖关系
3,结构
下图是外观模式的结构,由于该模式的引入,所以外界访问通过这个统一的接口进行,
系统的复杂性得以降低。
4,使用效果
外观模式为用户提供了使用子系统组件的统一的接口,使用户减少了处理对象的数目,
并且使子系统使用简单。使用外观模式使子系统和客户之间实现松散耦合关系,由于用户针
对接口编程,因此子系统的变化不会影响到客户的变化,而且有助于分层架构的实现。
如图所示某信息系统的总体体系结构图,其中客户端使用了分层结构。
在这个结构中,应用层与领域层的连接关系非常混乱,领域层中类的任何变化都可能引
起应用层大量的未知变化,使系统的升级时成本很高,可维护性大幅降低。由于这种混乱是
在类的(或者模块)的层面上,为了解决这个问题,我们可以使用外观模式,如下图所示。
这种模式一个显而易见的好处,本来一个类的修改可能会影响一大片代码,而加了外观
类以后只需要修改很少量的代码就可以了,这就使系统的高级维护成为可能。
外观模式定义了一个把子系统的一组接口集成在一起的高层接口,以提供一个一致的处
理方式,其它系统可以方便的调用子系统中的功能,而忽略子系统内部发生的变化。
2,使用场合
1)为一个比较复杂的子系统,提供一个简单的接口。
2)把客户程序和子系统的实现部分分离,提高子系统的独立性和可移植性。
3)简化子系统的依赖关系
3,结构
下图是外观模式的结构,由于该模式的引入,所以外界访问通过这个统一的接口进行,
系统的复杂性得以降低。
4,使用效果
外观模式为用户提供了使用子系统组件的统一的接口,使用户减少了处理对象的数目,
并且使子系统使用简单。使用外观模式使子系统和客户之间实现松散耦合关系,由于用户针
对接口编程,因此子系统的变化不会影响到客户的变化,而且有助于分层架构的实现。
如图所示某信息系统的总体体系结构图,其中客户端使用了分层结构。
在这个结构中,应用层与领域层的连接关系非常混乱,领域层中类的任何变化都可能引
起应用层大量的未知变化,使系统的升级时成本很高,可维护性大幅降低。由于这种混乱是
在类的(或者模块)的层面上,为了解决这个问题,我们可以使用外观模式,如下图所示。
这种模式一个显而易见的好处,本来一个类的修改可能会影响一大片代码,而加了外观
类以后只需要修改很少量的代码就可以了,这就使系统的高级维护成为可能。
相关文章推荐
- 利用工厂模式封装对象变化
- 利用桥接模式封装业务单元变化
- 策略模式(Strategy)-定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
- 利用适配器模式封装接口变化
- 利用装饰者模式通过层层封装以达到动态增强类的功能。
- 【读书笔记-重构与模式】 策略模式Strategy--封装变化
- 利用装饰器模式封装核心业务单元
- Android - 页面切换,动画播放,程序锁,Activity启动模式,利用内容观察者同步数据库变化
- 设计技巧39:利用Visitor模式实现对现有数据的封装和功能的添加
- 策略模式:封装变化与面向接口编程
- 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
- 二、封装的变化(设计模式的核心)
- 利用观察者模式处理业务单元的变化
- 设计模式---封装变化
- 利用外观模式模拟股民炒股 C++
- js原生设计模式——9外观模式封装
- 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
- js原生设计模式——9外观模式封装2(小型代码库YJ)
- 浅谈设计模式之精髓---封装变化点 (转)
- 利用模板方法封装业务单元变化