专栏首页爱敲代码的猫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类里,这样就起到了解耦的作用,这,就是外观模式!

本文分享自微信公众号 - 爱敲代码的猫(aquanrun),作者:Leemus

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java设计模式(9)-桥接模式

    这篇推文分享一下桥接模式,JDBC原理也是运用了桥接模式,先设置驱动名称,链接,来获得数据库链接,降低耦合,减少维护

    爱敲代码的猫
  • java设计模式(16)-迭代子模式

    模拟了一个集合类的过程,其实JDK中各个类也都是这些基本的东西,加一些设计模式,再加一些优化放到一起的,只要把这些东西学会了,掌握好了,自己也可以写出集...

    爱敲代码的猫
  • java设计模式(5)-适配器模式

    适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题

    爱敲代码的猫
  • SpringMVC快速使用AOP

    最近突然想到了AOP编程,于是在自己的SpringMVC小项目中引入了。AOP一般用来做些什么呢?这里简单的使用AOP做拦截日志,来介绍下在SpringMVC中...

    幽鸿
  • 设计模式之模板方法模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决...

    低调小熊猫
  • Java设计模式之桥梁模式

    梦想中的我自己,身价过亿,有两个大公司,一个是房地产公司,一个是服装制造公司,其实是什么公司我倒是不关心,我关心的是它赚不赚钱,赚了多少,这才是我关心的。先用类...

    CoderJed
  • JAVA入门学习三

    一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。

    WeiyiGeek
  • Java-面向对象(多态)

    编译时看的都是左边,运行时成员方法看的是右边,其他(成员变量和静态方法)看的都是左边

    DataScience
  • 设计模式之模版方法模式(the Template Method Pattern)

    我们发现制作茶和咖啡的基本步骤有两步是一样的,如果我们直接实现,也就是各实现各的算法,那么显然,会产生重复的代码,也就是boilWater和pourInCup是...

    desperate633
  • springBoot启动时让方法自动执行

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    chenchenchen

扫码关注云+社区

领取腾讯云代金券