前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java设计模式(7)-外观模式

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

作者头像
爱敲代码的猫
发布2019-10-17 01:40:56
2930
发布2019-10-17 01:40:56
举报
文章被收录于专栏:爱敲代码的猫爱敲代码的猫

前言

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

外观模式:

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

实体类:

代码语言:javascript
复制
public class CPU {  
      
    public void startup(){  
        System.out.println("启动cpu!");  
    }  
      
    public void shutdown(){  
        System.out.println("关闭cpu!");  
    }  
}  
代码语言:javascript
复制
public class Memory {  
      
    public void startup(){  
        System.out.println("启动内存!");  
    }  
      
    public void shutdown(){  
        System.out.println("关闭内存!");  
    }  
}  
代码语言:javascript
复制
public class Disk {  
      
    public void startup(){  
        System.out.println("启动硬盘!");  
    }  
      
    public void shutdown(){  
        System.out.println("关闭硬盘!");  
    }  
}  

归纳类关系:

代码语言:javascript
复制
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("关机成功!");  
    }  
}  

测试类:

代码语言:javascript
复制
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类里,这样就起到了解耦的作用,这,就是外观模式!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱敲代码的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 外观模式:
  • 实体类:
  • 归纳类关系:
  • 测试类:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档