设计模式7 - 门面模式【Facade Pattern】

简介: 设计模式7 - 门面模式【Facade Pattern】

门面模式

定义:是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。

例子(投递信件,流程封装在类里面):

写信流程类:

/**
* 定义一个写信的过程
*/
public interface LetterProcess { 
    //首先要写信的内容
    public void writeContext(String context); 
    //其次写信封
    public void fillEnvelope(String address); 
    //把信放到信封里
    public void letterInotoEnvelope(); 
    //然后邮递
    public void sendLetter(); 
} 
/**
* 写信的具体实现了
*/
public class LetterProcessImpl implements LetterProcess { 
    //写信
    public void writeContext(String context) { 
         System.out.println("填写信的内容...." + context); 
    } 
    //在信封上填写必要的信息
    public void fillEnvelope(String address) { 
         System.out.println("填写收件人地址及姓名...." + address); 
    } 
    //把信放到信封中,并封好
    public void letterInotoEnvelope() { 
         System.out.println("把信放到信封中...."); 
    } 
    //塞到邮箱中,邮递
    public void sendLetter() { 
         System.out.println("邮递信件..."); 
    } 
}

门面类:

/**
*门面类
*/
public class ModenPostOffice { 
private LetterProcess letterProcess = new LetterProcessImpl(); 
//写信,封装,投递,一体化了
public void sendLetter(String context,String address){ 
     //帮你写信
     letterProcess.writeContext(context); 
     //写好信封
     letterProcess.fillEnvelope(address); 
     //把信放到信封中
     letterProcess.letterInotoEnvelope(); 
     //邮递信件
     letterProcess.sendLetter(); 
 } 
} 

主程序调用:

public class Client { 
    public static void main(String[] args) { 
         //现代化的邮局,有这项服务,邮局名称叫Hell Road
         ModenPostOffice hellRoadPostOffice = new ModenPostOffice(); 
         //你只要把信的内容和收信人地址给他,他会帮你完成一系列的工作;
         String address = "Happy Road No. 666,God Province,Heaven"; //定义一个地址
         String context = "Hello,It's me,do you know who am? I'm your old lover. 
I'd like to...."; 
         hellRoadPostOffice.sendLetter(context, address); 
 } 
}

总结:

是一个很好的封装方法,一个子系统比较复杂的实话,比如算法或者业务比较复杂,就可以封装出一个或多个门面出来,项目的结构简单,而且扩展性非常好。

目录
相关文章
|
7月前
|
设计模式 Java 数据安全/隐私保护
Java 设计模式:装饰者模式(Decorator Pattern)
装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式。该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭)。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
设计模式
设计模式之-门面 Facade
设计模式之-门面 Facade
123 2
|
设计模式 安全 Java
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
该文介绍了一种C++的编程技巧——奇异递归模板模式(CRTP),旨在让派生组件能继承基本组件的特定功能。通过示例展示了如何创建一个`Fighter`接口和`MmaFighter`类,其中`MmaFighter`及其子类如`MmaBantamweightFighter`和`MmaHeavyweightFighter`强制类型安全,确保相同重量级的拳手之间才能进行比赛。这种设计避免了不同重量级拳手间的错误匹配,编译时会报错。CRTP适用于处理类型冲突、参数化类方法和限制方法只对相同类型实例生效的情况。
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
|
设计模式
设计模式-05建造者模式(Builder Pattern)
设计模式-05建造者模式(Builder Pattern)
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
96 1
|
设计模式
设计模式 | 门面模式 Facade
设计模式 | 门面模式 Facade
132 0
|
5月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
135 16
|
5月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
131 0