看上去很美:外观模式

简介:

在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。举例来说,比如利用传统的三层结构,我们开发了一个客户订单管理系统,数据库表包括主要客户表,订单表,产品表。在该应用程序中,有部分操作只是简单的从数据库根据条件提取数据,不需要经过任何处理,而直接将数据显示到网页上,比如客户登陆显示等级和积分。而另外一些操作,比如客户预定定单中计算购买产品的总价并根据顾客的级别计算回扣,积分和等级之间的相互转换(等级按照积分的变化而变化)等等,这部分往往有许多不同的功能的类,操作起来也比较复杂。如果采用传统的三层结构,这些逻辑一般是会放在中间层,那么对内部的这些大量种类繁多,使用方法也各异的不同的类的调用任务,就完全落到了表示层。这样势必会增加表示层的代码量,将表示层的任务复杂化,和表示层只负责接受用户的输入并返回结果的任务不太相称,并增加了层与层之间的耦合程度。
那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?
于是就引入了一个Facade层,让这个Facade来负责管理系统内部类的调用,并为表示层提供了一个单一而简单的接口。好了,Code is cheap.看代码了先。
类图:

代码部分:

ContractedBlock.gif Code




本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/03/28/1420753.html,如需转载请自行联系原作者

目录
相关文章
|
11月前
|
设计模式 Java 程序员
|
5月前
|
设计模式 Java
小谈设计模式(13)—外观模式
小谈设计模式(13)—外观模式
|
5月前
|
设计模式
|
11月前
|
设计模式 关系型数据库
设计模式原则(下)
设计模式原则(下)
|
设计模式 Java uml
全面通透深入剖析工厂方法模式
工厂方法模式主要适用于以下应用场景。 (1)创建对象需要大量重复的代码。 (2)客户端(应用层)不依赖产品类实例如何被创建、实现等细节。 (3)一个类通过其子类来指定创建哪个对象。
115 0
|
设计模式 NoSQL Java
被误读的设计模式
被误读的设计模式
113 0
被误读的设计模式
|
设计模式 uml
利用外观模式,直接走上会所内模的道路
利用外观模式,直接走上会所内模的道路
利用外观模式,直接走上会所内模的道路
|
设计模式 缓存 安全
【设计模式】从女娲娘娘到取媳妇
💫你好,我是小航,一个正在变秃、变强的准大三党 💫本文主要讲解设计模式,示例Demo采用Java语言演示 💫欢迎大家的关注!
160 0
【设计模式】从女娲娘娘到取媳妇
|
设计模式 Java
设计模式铺铺路(面向对象设计的原则一二)
我们的知识星球马上就要开始更新设计模式了,在更新设计模式之前,我们是不是需要做一些准备呢?否则设计模式中一些遵循的原则大家会一头雾水,所以我今天来给大家说一些面向对象的七种原则,有人说是6种有人说是7种,我个人认为是7种,我就按照7种来说,今天我就介绍2种,下一篇文章将会继续介绍剩下的五种原则,这些原则也会在设计模式中出现,各位技术人,欢迎大家的踊跃参加呦。
设计模式铺铺路(面向对象设计的原则一二)
|
设计模式
设计模式七大原则——迪米特原则
设计模式七大原则——迪米特原则
设计模式七大原则——迪米特原则