java读书笔记-《java设计模式》-第4章 - 外观模式

本文通过一个电脑启动过程的例子,详细解析了外观模式的概念及其在代码解耦中的应用。通过创建一个Computer外观类,整合CPU、内存和硬盘等组件,简化了用户操作流程并实现了组件间的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于外观模式书中讲的简单宽泛不便于理解,所以找了些网上的资料作为参考(http://zz563143188.iteye.com/blog/1847029)。结合起来看可以把外观模式解释为下面这样:


外观模式主要作用于类与类之间的关系,作用是解耦,解除类与类之间的依赖。也可以用书中的话说“根据关注点将代码分解为不通的类,就可以提取一个类,它的主要职责是为子系统提供简便的访问方式,从而完成对系统的重构。”简单的说就是讲一段代码根据不同的功能模块化,并实现一个外观类,它的功能就是整合这些模块,为开发者提供一个简易的使用接口。同时这个外观类也使各个模块之间实现解耦,是他们不会互相影响。

网上的例子比书中的更易于理解:这是一个电脑启动过程的例子

[java]  view plain copy
  1. public class CPU {  
  2.       
  3.     public void startup(){  
  4.         System.out.println("cpu startup!");  
  5.     }  
  6.       
  7.     public void shutdown(){  
  8.         System.out.println("cpu shutdown!");  
  9.     }  
  10. }  
[java]  view plain copy
  1. public class Memory {  
  2.       
  3.     public void startup(){  
  4.         System.out.println("memory startup!");  
  5.     }  
  6.       
  7.     public void shutdown(){  
  8.         System.out.println("memory shutdown!");  
  9.     }  
  10. }  
[java]  view plain copy
  1. public class Disk {  
  2.       
  3.     public void startup(){  
  4.         System.out.println("disk startup!");  
  5.     }  
  6.       
  7.     public void shutdown(){  
  8.         System.out.println("disk shutdown!");  
  9.     }  
  10. }  
[java]  view plain copy
  1. public class Computer {  
  2.     private CPU cpu;  
  3.     private Memory memory;  
  4.     private Disk disk;  
  5.       
  6.     public Computer(){  
  7.         cpu = new CPU();  
  8.         memory = new Memory();  
  9.         disk = new Disk();  
  10.     }  
  11.       
  12.     public void startup(){  
  13.         System.out.println("start the computer!");  
  14.         cpu.startup();  
  15.         memory.startup();  
  16.         disk.startup();  
  17.         System.out.println("start computer finished!");  
  18.     }  
  19.       
  20.     public void shutdown(){  
  21.         System.out.println("begin to close the computer!");  
  22.         cpu.shutdown();  
  23.         memory.shutdown();  
  24.         disk.shutdown();  
  25.         System.out.println("computer closed!");  
  26.     }  
  27. }  

User类如下:

[java]  view plain copy
  1. public class User {  
  2.   
  3.     public static void main(String[] args) {  
  4.         Computer computer = new Computer();  
  5.         computer.startup();  
  6.         computer.shutdown();  
  7.     }  
  8. }  
外观类Computer整合了三个模块,完美的提供了User需要的功能,不但是三个模块实现解耦,接触了相互依赖,也为User提供了一个简易的使用接口。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值