设计模式--->门面模式

门面模式:对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

设计模式--->门面模式

 

提问:客户端通过几次调用才实现想要的结果,为什么独立出来一个Facade来统一管理呢?

 

设计模式--->门面模式

 

public class Demand_1 {
 public void doMethod(){
  System.out.println("Demand_1");
 }
 
}
public class Demand_2 {
 
 public void doMethod(){
  System.out.println("Demand_2");
 }
 
}
public class Demand_3 {
 public void doMethod(){
  System.out.println("Demand_3");
 }
 
}
//门面
public class Facade {
 private Demand_1 demand_1;
 private Demand_2 demand_2;
 private Demand_3 demand_3;
 public Facade() {
  demand_1 = new Demand_1();
  demand_2 = new Demand_2();
  demand_3 = new Demand_3();
 }
 public void doMethod1_3() {
  demand_1.doMethod();
  demand_3.doMethod();
 }
 
 public void doMethod2_3() {
  demand_2.doMethod();
  demand_3.doMethod();
 }
 
}
//客户端
public class DemandTest {
 public static void main(String[] args) {
  Facade facade = new Facade();
  facade.doMethod1_3();
  
 }
}

结果:

Demand_1
Demand_3

 

门面模式的优点

  门面模式的优点:

  ●  松散耦合

  门面模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。

  ●  简单易用

  门面模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。

  ●  更好的划分访问层次

  通过合理使用Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节。

 

参考:

http://blog.csdn.net/jason0539/article/details/22775311

http://doudouclever.blog.163.com/blog/static/1751123102010102985141134/

你可能感兴趣的:(java,设计模式)