为了账号安全,请及时绑定邮箱和手机立即绑定

设计模式之——外观模式

标签:
Java

一、基本介绍

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


二、包含角色

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


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


三、案例及UML类图

案例说明:

https://img1.sycdn.imooc.com//5e180ac10001e6ed08320422.jpg

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


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三层结构开发中,都是通过接口去调用。




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消