门面模式:Facade Pattern,提供了一个统一的接口,用来访问子系统中的一群接口

    • 其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构型设计模式

    应用场景:

    • 为一个复杂的模块或子系统提供一个简洁的供外界访问的接口
    • 希望提高子系统的独立性时
    • 当子系统由于不可避免的暂时原因导致可能存在Bug或性能相关问题时,可以通过门面模式提供一个高层接口,隔离客户端与子系统的直接交互,预防代码污染
    1. public class FacadeDemo {
    2. public static void main(String[] args) {
    3. // 门面模式一般是用来整合系统的复杂API,对外提供统一的功能
    4. Facade facade = new Facade();
    5. facade.doA();
    6. facade.doB();
    7. facade.doC();
    8. }
    9. static class Facade {
    10. private SubSystemA systemA = new SubSystemA();
    11. private SubSystemB systemB = new SubSystemB();
    12. private SubSystemC systemC = new SubSystemC();
    13. public void doA() {
    14. systemA.doA();
    15. }
    16. public void doB(){
    17. systemB.doB();
    18. }
    19. public void doC(){
    20. systemC.doC();
    21. }
    22. }
    23. static class SubSystemA{
    24. // 子系统A
    25. public void doA() {
    26. System.out.println("A系统提供的功能");
    27. }
    28. }
    29. static class SubSystemB{
    30. public void doB() {
    31. System.out.println("B系统提供的功能");
    32. }
    33. }
    34. static class SubSystemC{
    35. public void doC() {
    36. System.out.println("C系统提供的功能");
    37. }
    38. }
    39. }