java_facade
2024-05-11 10:07:15
introduction:
外观模式:
提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
外观没有”封装“子系统的类,外观只是提供简化的接口。客户如果觉得有必要依然可以直接使用子系统的类。
外观模式一个很好的特征:提供简化的接口的同时,依然将系统完整的功能暴露出来,以供需要的人使用。
demo:
description:
以用户操作一台计算机为例,用户可能不了解计算机内部错综复杂的结构,但是用户可以操作它,这是因为用户使用了操作系统这个接口,由操作系统来调用错综复杂的结构。
模拟从电脑中读写数据
Cpu.java
public class Cpu {public void useCpu(){System.out.println("使用cpu");}}
Disc.java
public class Disc {public void useDisc(){System.out.println("使用硬盘");}}
IO.java
public class IO {public void i(){System.out.println("读取数据");}public void o(){System.out.println("读出数据");}
}
Memory.java
public class Memory {public void useMemory(){System.out.println("使用内存");}
}
Computer.java
public class Computer {private Cpu cpu;private Disc disc;private IO io;private Memory memory;public Computer(Cpu cpu, Disc disc, IO io, Memory memroy) {this.cpu = cpu;this.disc = disc;this.io = io;this.memory = memroy;}public void getData(){cpu.useCpu();io.o();disc.useDisc();}public void setData(){cpu.useCpu();io.i();memory.useMemory();io.i();disc.useDisc();}
}
Test.java
public class Test {public static void main(String[] args) {Computer computer = new Computer(new Cpu(),new Disc(),new IO(),new Memory());System.out.println("读数据");computer.getData();System.out.println("\n写数据");computer.setData();}
}
以上实例简单描述了外观模式的含义。
在外观模式中使用了一个OO原则:
最少知识原则:只和你的密友谈话
不调用从另一个调用中返回对象的方法,这样做,相当于向另一个对象的子部分发出请求,而本原则要求我们直接对该对象发出请求,
这样一来我们就不需要认识该对象的组件了(让朋友圈子维持在最小状态)。
最少知识原则减少了对象之间的依赖,导致复杂度和开发时间的增加,并降低运行时的性能。
适配器模式和外观模式的区别:
适配器模式的意图是,改变接口符合客户的期望
外观模式的意图是,提供子系统的一个简化接口
java_facade相关推荐
- 颜值10分姐姐带我玩转java设计模式(内附照片)- 门面模式
先不说话,直接来张姐姐照片,称呼包子姐姐即可,希望包子姐姐能带飞. 原创不易,麻烦先三连,再细看,谢谢 示例的源码可以直接通过csdn下载也可以通过git导出:https://github.com/i ...
最新文章
- 《等离子体所毕业生经验分享会》观后感 2020-07-03
- 【练习】2021下半年数据结构刷题笔记和总结 (三)栈 队列 链表 枚举算法
- [转帖]Mootools源码分析-49 -- Asset
- 程序设计语言基础-知识点
- 1045. Favorite Color Stripe (30)
- Scapy 函数传值问题,解决多层数据获取
- php 监听模式,总结Laravel事件系统用法(监听事件,观察者模式)
- 点击空白处隐藏指定dom元素(纯javascript方法)
- @Transactional注解属性(1)
- 150.1 go语言开发实战慕课版
- 6.18上午CVPR直播 | 清华三维视觉研究团队:三维人体重建与渲染、高精度人脸生成
- kafka2.0-幂等发送(the idempotent producer)_09
- vhd虚拟硬盘作用_如何从VHD(虚拟硬盘)引导和安装Windows 8 Consumer Preview的指南
- 转载-Android 前沿UI
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的...
- python--敲击木鱼积累功德小项目
- plot画图 python 双线_Python使用多种滤波器对脑电数据去除伪影
- 微信小程序input弹出键盘挡住文字的解决办法
- 什么是真正的骨传导耳机,五款真骨传导耳机推荐
- 60 种常用可视化图表,该怎么用?