设计模式之——外观模式

一、基本介绍

外观模式(结构型):对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

二、包含角色

1.外观角色:为子系统对外提供一个共同的接口。

2.子系统角色:实现系统的部分功能,客户可以通过外观角色访问它。

三、案例及UML类图

案例说明:

           动物接口定义了吃睡跑三个功能,让各个不同的动物实现其方法,进行不同种类的操作。

UML类图:

类Animal:

public interface Animal {

    void eat();

    void sleep();

    void run();
}

说明:动物接口,外观角色,定义子系统的公共接口。

类Dog:

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("用舌头舔着吃");
    }

    @Override
    public void sleep() {
        System.out.println("趴着睡");
    }

    @Override
    public void run() {
        System.out.println("四只脚跑");
    }
}

说明:狗类,子系统角色,实现狗的功能。

类Person:

public class Person implements Animal {

    @Override
    public void eat() {
        System.out.println("用手把食物放入嘴巴吃");
    }

    @Override
    public void sleep() {
        System.out.println("躺着睡");
    }

    @Override
    public void run() {
        System.out.println("两只脚跑");
    }
}

说明:人类,子系统角色,实现人的功能。

类FacadeTest:

public class FacadeTest {

    public static void main(String[] args) {
        Animal animal = new Person();
        animal.eat();
        animal.run();
        animal.sleep();
        System.out.println("——————————");
        animal = new Dog();
        animal.eat();
        animal.run();
        animal.sleep();
    }
}

说明:测试及客户端类。

四、适用场景

1.适用于分层结构开发中,如controller、service、dao三层结构开发中,都是通过接口去调用。

2.用于需要对访问者屏蔽各个子系统的具体细节,而需对其提供接口的需求中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值