网络知识 娱乐 java设计模式(7)-外观模式

java设计模式(7)-外观模式

前言

上篇文章分享代理模式,这篇整理外观模式,外观模式可以降低类与类之间的耦合程度,减少维护工作量

外观模式:

1.外观模式是为了解决类与类之间的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个外观类中,降低了类与类之间的耦合度,该模式中没有涉及到接口 2.把类归纳在一个整体类里边,一起调用,达到整体实现的效果

实体类:

public class CPU {  
      
    public void startup(){  
        System.out.println("启动cpu!");  
    }  
      
    public void shutdown(){  
        System.out.println("关闭cpu!");  
    }  
}  
public class Memory {  
      
    public void startup(){  
        System.out.println("启动内存!");  
    }  
      
    public void shutdown(){  
        System.out.println("关闭内存!");  
    }  
}  
public class Disk {  
      
    public void startup(){  
        System.out.println("启动硬盘!");  
    }  
      
    public void shutdown(){  
        System.out.println("关闭硬盘!");  
    }  
}  

归纳类关系:

public class Computer {  
    private CPU cpu;  
    private Memory memory;  
    private Disk disk;  
      
    public Computer(){  
        cpu = new CPU();  
        memory = new Memory();  
        disk = new Disk();  
    }  
      
    public void startup(){  
        System.out.println("正在启动!");  
        cpu.startup();  
        memory.startup();  
        disk.startup();  
        System.out.println("启动成功!");  
        System.out.println("====================");  
    }  
      
    public void shutdown(){  
        System.out.println("正在关机!");  
        cpu.shutdown();  
        memory.shutdown();  
        disk.shutdown();  
        System.out.println("关机成功!");  
    }  
}  

测试类:

public class ComputerTest {  
  
    public static void main(String[] args) {  
        Computer computer = new Computer();  
        computer.startup();  
        computer.shutdown();  
    }  
}  

正在启动! 启动cup! 启动内存! 启动硬盘! 启动成功! ==================== 正在关机! 关闭cup! 关闭内存! 关闭硬盘! 关机成功!

如果没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!