07门面模式
作者:互联网
一、门面模式定义
1.门面模式又叫外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构型模式
2.门面模式的应用场景
A.子系统越来越复杂,增加门面模式提供简单接口
B.构建多层系统结构,利用门面对象作为每层的入口,简化层间调用
二、门面模式的通用写法
1.门面模式主要包含2种角色:
A.外观角色(Facade):也称门面角色,系统对外的统一接口
B.子系统角色(SubSystem):可以同时有一个或多个SubSystem。每个SubSystem不是一个单独的类,而是一个类的集合。SubSystem并不知道Facade的存在,对于SubSystem而言,Facade只是另一个客户端而已
2.代码示例
1 public class SubSystemA { 2 public void doA(){ 3 System.out.println("doing A stuff"); 4 } 5 } 6 7 public class SubSystemB { 8 public void doB(){ 9 System.out.println("doing B stuff"); 10 } 11 } 12 13 public class SubSystemC { 14 public void doC(){ 15 System.out.println("doing C stuff"); 16 } 17 } 18 19 public class Facade { 20 21 private SubSystemA a = new SubSystemA(); 22 private SubSystemB b = new SubSystemB(); 23 private SubSystemC c = new SubSystemC(); 24 25 public void doA(){ 26 this.a.doA(); 27 } 28 29 public void doB(){ 30 this.b.doB(); 31 } 32 33 public void doC(){ 34 this.c.doC(); 35 } 36 } 37 38 public class FacadeTest { 39 public static void main(String[] args) { 40 Facade facade = new Facade(); 41 facade.doA(); 42 facade.doB(); 43 facade.doC(); 44 } 45 }
2.门面模式的优缺点:
A.优点
a.简化了调用过程,无需深入了解子系统,以防给子系统带来风险
b.减少系统依赖、松散耦合
c.更好地划分访问层次,提高了安全性
d.遵循迪米特法则,即最少知道原则
B.缺点
a.当增加子系统和扩展子系统行为时,可能容易带来未知风险
b.不符合开闭原则
c.某些情况下可能违背单一职责原则
标签:SubSystem,07,void,模式,public,Facade,门面,子系统 来源: https://www.cnblogs.com/it-szp/p/14963818.html