设计模式--结构模式--门面模式
Posted fating
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--结构模式--门面模式相关的知识,希望对你有一定的参考价值。
一、基本概念
1、外观模式(Facade),也被称为"门面模式"。定义了一个高层、统一的接口,外部通过这个统一的接口对子系统中的一群接口进行访问。
2、角色
A:外观(Facade)角色:为多个子系统对外提供一个共同的接口。
B:子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。
C:客户(Client)角色:通过一个外观角色访问各个子系统的功能。
二、例子。
分诊台作为患者和医生的装饰。
A:外观(Facade)角色:
1 package comm.pattern.struct.facade; 2 3 /** 4 * 5 * @Title: TriageFacade.java 6 * @Package: comm.pattern.struct.facade 7 * @Description: 分诊台门面 8 * @author yangzhancheng 9 * @2020年3月25日:上午12:21:29 10 * 11 */ 12 public class TriageFacade { 13 14 private WaitF waitF = new WaitF(); 15 16 private CallF callF = new CallF(); 17 18 private DoctorF doctorF = new DoctorF(); 19 20 public void service(){ 21 waitF.service(); 22 23 callF.service(); 24 25 doctorF.service(); 26 } 27 }
B:子系统(Sub System)角色:
1 package comm.pattern.struct.facade; 2 3 /** 4 * 5 * @Title: WaitF.java 6 * @Package: comm.pattern.struct.facade 7 * @Description: 病人排号,各种操作 8 * @author yangzhancheng 9 * @2020年3月25日:上午12:16:42 10 * 11 */ 12 public class WaitF { 13 14 public void service(){ 15 System.out.println("01.病人排号等待..."); 16 } 17 }
1 package comm.pattern.struct.facade; 2 3 /** 4 * 5 * @Title: CallF.java 6 * @Package: comm.pattern.struct.facade 7 * @Description: 描述该文件做什么 8 * @author yangzhancheng 9 * @2020年3月25日:上午12:17:53 10 * 11 */ 12 public class CallF { 13 14 public void service(){ 15 System.out.println("02.叫号..."); 16 } 17 18 }
1 package comm.pattern.struct.facade; 2 3 /** 4 * 5 * @Title: DoctorF.java 6 * @Package: comm.pattern.struct.facade 7 * @Description: 描述该文件做什么 8 * @author yangzhancheng 9 * @2020年3月25日:上午12:18:42 10 * 11 */ 12 public class DoctorF { 13 14 public void service(){ 15 System.out.println("03.医生看病..."); 16 } 17 }
C:客户(Client)角色:
1 package comm.pattern.struct.facade; 2 /** 3 * 4 * @Title: Client.java 5 * @Package: comm.pattern.struct.facade 6 * @Description: 描述该文件做什么 7 * @author yangzhancheng 8 * @2020年3月25日:上午12:02:40 9 * 10 */ 11 public class Client { 12 13 public static void main(String[] args) { 14 TriageFacade triageFacade = new TriageFacade(); 15 triageFacade.service(); 16 } 17 18 }
运行结果
01.病人排号等待... 02.叫号... 03.医生看病...
三、总结
门面模式比较简单。
以上是关于设计模式--结构模式--门面模式的主要内容,如果未能解决你的问题,请参考以下文章