外观模式

痴心易碎 提交于 2020-02-22 15:52:26

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

Hospital类

 1 package top.bigking.facade;
 2 
 3 /**
 4  * @Author ABKing
 5  * @since 2020/2/22 下午2:40
 6  **/
 7 public class School {
 8     public School() {
 9         System.out.println("学校");
10     }
11 }

School类

 1 package top.bigking.facade;
 2 
 3 /**
 4  * @Author ABKing
 5  * @since 2020/2/22 下午2:40
 6  **/
 7 public class School {
 8     public School() {
 9         System.out.println("学校");
10     }
11 }

Bank类

 1 package top.bigking.facade;
 2 
 3 /**
 4  * @Author ABKing
 5  * @since 2020/2/22 下午2:44
 6  **/
 7 public class Bank {
 8     public Bank() {
 9         System.out.println("银行");
10     }
11 }

门面类:

 1 package top.bigking.facade;
 2 
 3 /**
 4  * @Author ABKing
 5  * @since 2020/2/22 下午2:44
 6  **/
 7 public class RegisterFacade {
 8     public static void register(){
 9         Bank bank = new Bank();
10         Hospital hospital = new Hospital();
11         School school = new School();
12     }
13 }

单元测试:

 1 package top.bigking.facade;
 2 
 3 import org.junit.Test;
 4 
 5 /**
 6  * @Author ABKing
 7  * @since 2020/2/22 下午2:46
 8  **/
 9 public class TestFacade {
10     @Test
11     public void testFacade(){
12         RegisterFacade.register();
13     }
14 }

开发常用的场景:

频率很高,哪里都会遇到。各种技术和框架中,都有外观模式的使用。如:

JDBC封装后的,commons提供的DBUtils类,Hibernate提供的工具类、Spring JDBC工具类。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!