设计模式-外观模式

就是多加了Facade 这一层,让自己同serviceA ServiceB ServiceC
不会直接被调用。


interface ServiceA{
    public void methodA();
}
interface ServiceB{
    public void methodB();
}
interface ServiceC{
    public void methodC();
}

class Facade{
    ServiceA sa;
    ServiceB sb;
    ServiceC sc;

    public Facade(){
        sa= new ServiceAImpl();
        sb= new ServiceBImpl();
        sc= new ServiceCImpl();
    }
    public void methodA(){
        sa.methodA();
        sb.methodB();
    }
    public void methodB(){
        sb.methodB();
        sc.methodC();
    }
    public void methodC(){
        sc.methodC();
        sa.methodA();
    }
}
class ServiceAImpl implements ServiceA{
    public void methodA(){
        System.out.println("A");
    }
}
class ServiceBImpl implements ServiceB{
    public void methodB(){
        System.out.println("B");
    }
}
class ServiceCImpl implements ServiceC{
    public void methodC(){
        System.out.println("C");
    }
}

public class FacadeTest {
    public static void main(String[] args){
        ServiceA sa = new ServiceAImpl();
        ServiceB sb = new ServiceBImpl();

        sa.methodA();
        sb.methodB();

        System.out.println("============");

        Facade facade = new Facade();
        facade.methodA();
        facade.methodB();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文摘一:有些地方外观模式也被叫做门面模式,英文即Facade Pattern,提前说明一下。 试想这种情况,用户添...
    _浅墨_阅读 3,449评论 0 1
  • 目录 本文的结构如下: 什么是外观模式 模式的结构 代码示例 优点和缺点 适用环境 模式应用 模式扩展 补充 一、...
    w1992wishes阅读 3,811评论 0 1
  • 介绍 1、使用频率高,常见的是第三方库。 2、对外可见的只有一两个类,而内部涉及可能是个很庞大很复杂的系统。 定义...
    小菜_charry阅读 3,630评论 0 0
  • 今天我们来学习另一种结构型模式,它就是外观模式(Facade Pattern)。 模式定义 外部与一个子系统的通信...
    HJXANDHMR阅读 3,547评论 0 4
  • 原文地址:LoveDev 外观模式(Facade Pattern):又称为门面模式,为一组接口提供一个统一的入口。...
    KevinLive阅读 3,325评论 0 2