上一篇博客我们陈述了适配器模式,这篇文章的例子接上上一个设计模式中用到的例子继续讲外观模式。
==========================================
话说,自从王麻子开始从李四那里买肉夹馍以后,随着时间的推移,王麻子觉得越来越不爽了。为啥呢?张三每次给自己卖肉的时候总是把肉剁好就不管了,具体夹馍的过程是王麻子自己来的。这肉夹馍好吃,可是还挺麻烦的。要是有人提供更好的肉夹馍服务就好了,要是自己来做肉夹馍的生意,让张三和李四来做厨师,自己再把资源整合一下,肉夹馍也卖、白吉馍也卖、腊汁肉我也单卖的。于是王麻子算了一下预算,找到张三和李四商量,张三和李四想,既不用租店面承担经营风险,而且王麻子承诺的还比自己日常挣的多,感觉挺靠谱。三方一拍即合。从此,顾客再也看不到张三和李四怎么做吃的,因为有了独立的厨房,为了专人专用,王麻子雇佣了赵五专门完成把肉夹到馍里的工作。于是环境整洁、服务质量比以前好了太多,顾客络绎不绝、生意红红火火。
故事讲完了,我们说,王麻子干的事情便是外观模式,更通俗的讲,我们可以叫他门面模式(Facade),是不是似曾相识,好像平时开发过程中也在这么干呢?通常情况下,一个应用系统对外提供的服务,基本都是基于外观模式(Facade)来搞的。
继续庸俗,先上图:
我们看看赵五参与进来以后,各个类在实现过程中的具体细节:
张三作为专做白吉馍的厨师:
/** * */ package adaptorPatternProject; /** * 张三承担白吉馍生产的厨师 * * @author Administrator * */ public class ZhangSan { /** * 张三说,我做馍 * * @param businessFlow 业务流水 * @return */ public Object woZuoMo(String businessFlow){ //这里处理卖馍的逻辑 return null; } }
李四作为专做腊汁肉的厨师:
/** * */ package adaptorPatternProject; /** * 李四在王麻子的厨房承担腊汁肉厨师角色 * * @author Administrator * */ public class LiSi { /** * @param businessFlow 业务流水 * @return */ public Object woZuoRou(int businessFlow) { return null; } }
赵五作为专门负责将肉夹到馍里的厨师:
/** * */ package adaptorPatternProject; /** * @author Administrator * */ public class ZhaoWu { /** * @param businessFlow 业务流水 * @return */ public Object woJiaMo(String businessFlow){ return null; } }
王麻子自己在前台专门出票给厨师派发任务:
/** * */ package adaptorPatternProject; /** * 王麻子开店专卖白吉馍、腊汁肉、肉夹馍 * * @author Administrator * */ public interface WangMaZi { /** * 白吉馍单卖 * * @param money * @return */ public Object woMaiMo(int money); /** * 腊汁肉单卖 * * @param money * @return */ public Object woMaiRou(int money); /** * 肉夹馍专卖 * * @param money * @return */ public Object woMaiRouJiaMo(int money); }
我们继续抽象下,我们来看看外观模式的真面目:
各位看官,原创不易啊,转载请注明出处: http://danlley.iteye.com 看在打字不易的份上,打赏一个吧
相关推荐
总的来说,Facade模式和Simple Factory模式是Java设计模式中的重要组成部分,它们分别解决了简化复杂系统接口和对象创建的问题。学习和运用这些模式,不仅可以提高代码质量,还能使软件更加灵活,适应未来可能的变化...
章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立...10、设计模式之State 11、设计模式之Facade(外观) 12、设计模式之Interpreter(解释器) 13、设计模式之Visitor
外观模式(Facade Pattern)是设计模式中的一种结构型模式,主要目的是为了解决复杂的系统接口问题,提供一个简单的统一入口,使得客户端可以更方便地使用系统。在Java中,外观模式通常用来隐藏系统的复杂性,对外只...
设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template ...
以上就是关于Java设计模式中的外观模式的基本介绍及其在`FacadeDemo`中的应用。通过这个模式,我们可以更好地管理和组织复杂的系统,提高代码的可读性和可维护性。同时,它也适用于那些需要提供统一接口,但又不想...
" JAVA 设计模式概述" JAVA 设计模式是指在软件设计过程中,为了提高代码的可维护性、灵活性和可扩展性所使用的一些惯用解决方案。JAVA 设计模式可以分为三种:创建模式、结构模式和行为模式。 1. 创建模式 创建...
Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...
《Java设计模式》是刘伟教授的一本关于设计模式的教材,主要面向高等学校的学生和对Java编程有深入兴趣的开发者。设计模式是软件工程中的一种重要思想,它封装了在特定场景下的问题解决方案,可以提高代码的可读性、...
java设计模式【之】外观模式【源码】【场景:积分兑换图书】 外观模式:对于复杂的类操作, 或者多个子系统互相间需要操作, 可以创建外观类对复杂的类进一步封装, 调用者只与外观类交互。 * 框架应用 * Mybatis...
适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C....
外观模式(Facade模式)是一种设计模式,主要用于简化子系统或组件之间的交互,为复杂的系统提供一个简单的接口。在Java中,这种模式可以帮助我们管理和组织大量的类和接口,使其对外呈现简洁的交互方式。 外观模式...
这是JAVA设计模式中属于结构模式的部分,包括Flyweight(共享模式)、Bridge(桥模式)、Decorator(装饰模式)、Composite(组合模式)、Adapter(适配器模式)、Proxy(代理模式)、Facade (外观模式)的源代码。其中有些模式中...
包括适配器模式(Adapter)、桥接模式(Bridge)、装饰器模式(Decorator)、外观模式(Facade)、组合模式(Composite)、享元模式(Flyweight)和代理模式(Proxy)。这些模式可以帮助我们更好地组织代码,实现...
在《Java设计模式》这本书的模拟试题及其参考答案中,涉及了多条设计模式的知识点,以及它们的应用场景和实现方法。现在将这些知识点详细地解释如下: 1. 开闭原则(Open-Closed Principle, OCP): 开闭原则是面向...
- **外观模式(Facade)**:为子系统提供一个一致的接口,使得这些子系统更加容易使用。 - **享元模式(Flyweight)**:运用共享技术有效地支持大量细粒度的对象。 3. **行为型模式(Behavioral Patterns)** - ...
- 外观模式(Facade):为子系统提供一个统一的接口,使子系统更加易用。 - 适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口。 - 桥接模式(Bridge):将抽象部分与实现部分分离,使它们可以...
**外观模式(Facade Pattern)**是软件设计模式中的一种结构型模式,它的主要目的是为了解耦复杂的系统,提供一个统一的接口,使得客户端可以更容易地使用这个系统。在Java编程中,外观模式的应用广泛,尤其是在处理...
2. 结构型模式:关注对象组合和类的继承,例如适配器模式(Adapter)、装饰器模式(Decorator)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)、享元模式(Flyweight)和代理模式(Proxy)。...
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
包括适配器模式(Adapter)、桥接模式(Bridge)、装饰模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)、组合模式(Composite)和代理模式(Proxy)。如装饰模式可以在不修改原有对象的基础上添加新...