一. 門面模式
門面模式,又叫外觀模式,一個大的系統由若干個子系統構成,每個子系統中包含多個類,這些類協同合作為用戶提供所需要的功能,若直接和子類進行交互,則就形成了依賴關係,門面模式就是用來解決此問題的一個成熟模式.
二. 門面模式的UML類圖如下所示:
三. 現在用一個郵局的物流系統來模擬這個門面模式的實現,完整示例代碼如下:
1. 物流接口類
package structuralPattern.facade.facade1; /** * @ClassName: ILogistics * @Description:物流接口 * @author Liyongbin * @date 2011-2-9 上午11:20:48 * @version V1.0 */ public interface ILogistics { //發貨 public ILogistics sub_send(); //收貨 //public ILogistics sub_receive(); }
2. 郵局類
package structuralPattern.facade.facade1; /** * @ClassName: Postoffice * @Description:郵局類 * @author Liyongbin * @date 2011-2-9 上午11:21:31 * @version V1.0 */ public class Postoffice implements ILogistics{ // private Sub_measurement measurement; private Sub_package packaging; private Sub_weighIn weighIn; private Sub_countPrice countprice; private Sub_mailing miling; //無參構造器 public Postoffice() { super(); } //構造器 public Postoffice(Sub_measurement measurement, Sub_weighIn weighIn, Sub_package packaging, Sub_countPrice countprice, Sub_mailing amiling) { super(); this.measurement = measurement; this.weighIn = weighIn; this.packaging = packaging; this.countprice = countprice; this.miling = amiling; } //運送物品 @Override public ILogistics sub_send() { packaging.packaging(); measurement.measurement(); weighIn.weighIn(); countprice.countPrice(); miling.mailing(); return null; } }
3. 物品打包類
package structuralPattern.facade.facade1; /** * @ClassName: Sub_package * @Description:物品打包 * @author Liyongbin * @date 2011-2-9 上午11:34:16 * @version V1.0 */ public class Sub_package { public void packaging(){ System.out.println("流程開始"); System.out.println("包裝物品..."); } }
4. 量物品體積
package structuralPattern.facade.facade1; /** * @ClassName: Sub_measurement * @Description:量物品體積 * @author Liyongbin * @date 2011-2-9 上午11:32:56 * @version V1.0 */ public class Sub_measurement { public void measurement(){ System.out.println("測量物品體積..."); } }
5. 物品稱重
package structuralPattern.facade.facade1; /** * @ClassName: Sub_weighIn * @Description:物品稱重 * @author Liyongbin * @date 2011-2-9 上午11:31:29 * @version V1.0 */ public class Sub_weighIn { public void weighIn(){ System.out.println("稱物品重量..."); } }
6. 投遞物品
package structuralPattern.facade.facade1; /** * @ClassName: Sub_mailing * @Description:投遞物品 * @author Liyongbin * @date 2011-2-9 上午11:38:43 * @version V1.0 */ public class Sub_mailing { public void mailing(){ System.out.println("投遞物品..."); System.out.println("流程結束"); } }
7. 測試類
package structuralPattern.facade.facade1; /** * @ClassName: FacadeTest * @Description: 門面測試類 * @author Liyongbin * @date 2011-2-9 上午11:55:25 * @version V1.0 */ public class FacadeTest { public static void main(String[] args) { //實例化組件 Sub_measurement measurement = new Sub_measurement(); Sub_package packaging=new Sub_package(); Sub_weighIn weighIn= new Sub_weighIn(); Sub_countPrice countprice =new Sub_countPrice(); Sub_mailing miling =new Sub_mailing(); //實例化郵局 ILogistics lt= new Postoffice(measurement,weighIn,packaging,countprice,miling); //郵寄物品 lt.sub_send(); } }
8. 運行結果如下:
相关推荐
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
《Java设计模式经典搞笑珍藏》这本书通过将设计模式的学习与幽默元素相结合,使得读者在轻松愉快的氛围中学习到专业的设计模式知识。书籍不仅涵盖了多种设计模式,还强调了设计原则的重要性,并且根据读者的编程水平...
### Java设计模式详解 #### 一、概述 Java设计模式是一种软件工程领域的概念,它提供了一套被广泛接受的、经过验证的解决方案,用于解决在软件设计过程中出现的常见问题。设计模式并不是完成任务的具体代码,而是...
《Java设计模式》是一本详尽介绍Java设计模式的电子书,旨在帮助不同层次的开发者提升他们的编程设计能力。本书涵盖了23种经典的设计模式,包括策略模式、代理模式、单例模式、多例模式等,旨在让读者理解如何编写出...
7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式...
### Java设计模式详解 #### 一、创建型模式 **1. 工厂方法模式(Factory Method)** - **定义**:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 - **应用场景*...
本书《java24种设计模式.pdf》详细介绍了Java中的24种设计模式,适合不同水平的Java程序员学习。设计模式是软件工程中的一种重要知识,它们是针对软件设计中常见问题的一种可复用、通用的解决方案。设计模式不仅仅是...
根据提供的信息,我们可以总结出以下关于Java设计模式的相关知识点: ### Java设计模式概览 Java设计模式是一套被广泛认可的、经过验证的解决方案,用于解决软件开发过程中遇到的常见问题。这些模式可以帮助开发者...
### Java设计模式经典搞笑珍藏版 #### 一、引言 《Java设计模式经典搞笑珍藏版》这本书以一种轻松幽默的方式介绍了23种经典的设计模式及其在Java中的应用。设计模式是一种软件工程领域中非常重要的概念,它提供了...
本资源提供了《设计模式:可复用面向对象软件的基础》(GOF设计模式)书籍中23种设计模式的Java实现重写版本。下面将对这23种设计模式进行详细解释,并结合提供的文件名来推测每种模式的示例应用。 1. **单例模式...
### Java的23种设计模式详解 #### 一、引言 设计模式是软件工程领域的一个重要概念,它提供了一套解决常见问题的有效方案。在Java编程中,掌握设计模式对于提升代码质量和可维护性至关重要。本文将详细介绍23种经典...
门面模式【FACADE PATTERN】 适配器模式【ADAPTER PATTERN】 模板方法模式【TEMPLATE METHOD PATTERN】 建造者模式【BUILDER PATTERN】 桥梁模式【BRIDGE PATTERN】 命令模式【COMMAND PATTERN...
门面模式是一种结构型设计模式,为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 ##### 描述 门面模式的主要目的是简化复杂的系统,对外提供一个简单...
JAVA常用设计模式详解大全 在软件开发中,设计模式是指在软件设计中反复出现的问题解决方案,JAVA作为一门广泛应用的编程语言,设计模式在JAVA开发中扮演着重要角色。下面将对JAVA常用设计模式进行详细的介绍。 ...