温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java设计模式中外观模式怎么实现

发布时间:2021-11-17 14:41:12 来源:亿速云 阅读:140 作者:小新 栏目:大数据

小编给大家分享一下java设计模式中外观模式怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

 

外观模式(门面模式) Facade

 

Intro

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

 

Prototype

  • Facade: 外观类,知道哪些子系统类负责处理请求,将请求代理给对应的子系统对象
  • SubSystem Classes,实现子系统中的功能,处理 Facade 指派的任务,和 Facade 没有关联关系,没有继承,也不会引用 Facade
public class SubSystem1
{
    public void MethodA()
    {
        Console.WriteLine("MethodA in SubSystem1");
    }

    public void MethodB()
    {
        Console.WriteLine("MethodB in SubSystem1");
    }
}
public class SubSystem2
{
    public void MethodA()
    {
        Console.WriteLine("MethodA in SubSystem2");
    }

    public void MethodB()
    {
        Console.WriteLine("MethodB in SubSystem2");
    }
}
public class SubSystem3
{
    public void MethodA()
    {
        Console.WriteLine("MethodA in SubSystem3");
    }

    public void MethodB()
    {
        Console.WriteLine("MethodB in SubSystem3");
    }
}

public class Facade
{
    private readonly SubSystem1 _subSystem1 = new SubSystem1();
    private readonly SubSystem2 _subSystem2 = new SubSystem2();
    private readonly SubSystem3 _subSystem3 = new SubSystem3();

    public void MethodA()
    {
        _subSystem1.MethodA();
        _subSystem2.MethodA();
        _subSystem3.MethodA();
        Console.WriteLine();
    }

    public void MethodB()
    {
        _subSystem1.MethodB();
        _subSystem2.MethodB();
        _subSystem3.MethodB();
        Console.WriteLine();
    }
}

var facade = new Facade();
facade.MethodA();
facade.MethodB();
   

应用场景

  • 解决易用性问题,可以用来封装系统的底层实现,隐藏系统的复杂性,提供一组更加简单易用、更高层的接口。
  • 解决性能问题,通过将多个接口调用替换为一个门面接口调用,减少网络通信成本,提高 App 客户端的响应速度。API 聚合就是属于这种,也是属于外观模式的应用
  • 解决事务问题,通过门面模式可以方便的使得原本多个操作可以在一个事务内完成,如果中间某一个环节操作失败,可以回滚事务,撤销变更

看完了这篇文章,相信你对“java设计模式中外观模式怎么实现”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI