外观模式-Facade

名称:

    外观模式(Facade Pattern)-对象结构型模式

 

问题:

    The Facade pattern provides a unified interface to a group of interfaces in a subsystem. 
    The Facade pattern defines a higher-level interface that makes the subsystem easier to use because you have only one interface.

     为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

 

适用性:

    -当你要为一个复杂子系统提供一个简单接口时。

    -客户程序与抽象类的实现部分之间存在着很大的依赖性。

    -当你需要构建一个层次结构的子系统时

 

协作:

     -客户程序通过发送请求给Facade的方式与子系统通讯,Facade将这些消息转发给适当的子系统对象。尽管是子系统的有关对象在做实际工作,但facade模式本身也必需将它的接口转换成子系统的接口。

    -使用Facade的客户程序不需要直接访问子系统对象。

 

优点和缺点:

    1、她对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。

    2、他实现了子系统与客户之间的松耦合关系。而子系统内部的功能组件往往是紧耦合的。

    3、如果应用需要,它并不限制他们使用子系统类。

 

解决方案:

    

1、 模式的参与者

    1、Facade

    -知道哪些子系统类负责处理请求。

    -将客户的请求代理给适当的子系统对象。

    2、Subsystem classes

    -实现子系统的功能。

    -处理由Facede对象指派的任务。

    -没有facade的任何相关信息;即没有指向facade的指针。

2.实现方式

    

复制代码
class Facade
{
    private SubSystem01 obj1=new SubSystem01();
    private SubSystem02 obj2=new SubSystem02();
    public void method()
    {
        obj1.method1();
        obj2.method2();
    }
}
复制代码
class SubSystem01
{
    public  void method1()
    {
        
    }   
}
class SubSystem02
{
    public  void method2()
    {
        
    }   
}

 

public class FacadePattern
{
    public static void main(String[] args)
    {
        Facade f=new Facade();
        f.method();
    }
}

 

参考资料

《设计模式:可复用面向对象软件的基础》

 

posted @   diameter  阅读(109)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示