菜鸟硕枫设计模式系列之11 外观模式
发布日期:2021-10-01 08:45:09 浏览次数:2 分类:技术文章

本文共 1298 字,大约阅读时间需要 4 分钟。

外观模式,一种封装底层实现的模式。使得调用者不用关心谁去具体的完成功能操作,解耦了请求者与操作者,封装了细节。外观模式也是一种结构型设计模式。
外观模式类图:
[img]http://dl.iteye.com/upload/attachment/364549/8dd74c2a-15c0-3d86-9e62-c70f5963332c.jpg[/img]
具体demo:
Facade接口:
package facadePattern; public interface Facade {
void doA(); void doB(); }
具体实现:
package facadePattern; public class FacadeImpl implements Facade{
private A a; private B b; public void setA(A a) {
this.a = a; } public void setB(B b) {
this.b = b; } @Override public void doA() {
a.doA(); } @Override public void doB() {
b.doB(); } }
A接口:
package facadePattern; public interface A {
void doA(); }
A实现:
package facadePattern; public class AImpl implements A{
@Override public void doA() {
System.out.println("hello from taobao"); } }
B接口:
package facadePattern; public interface B {
void doB(); }
B实现:
package facadePattern; public class BImpl implements B{
@Override public void doB() {
System.out.println("doB,hello from taobao"); } }
测试类:
package facadePattern; public class FacadeTest {
public static void main(String[]args){
A a = new AImpl(); B b = new BImpl(); FacadeImpl facade = new FacadeImpl(); facade.setA(a); facade.setB(b); facade.doA(); facade.doB(); } }
说明 :说到解耦,在我的理解上,外观模式是封装作用最明显的一个设计模式,使得调用者完全不用关心底层实现由谁去完成。

转载地址:https://blog.csdn.net/iteye_2655/article/details/81970417 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:菜鸟硕枫设计模式系列之12 代理模式一
下一篇:菜鸟硕枫设计模式系列之10 装饰模式

发表评论

最新留言

很好
[***.229.124.182]2024年03月11日 14时09分54秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

唱好铁血丹心谐音正规_趙贤典:打好“感情牌” 唱好“大合唱” 2019-04-21
aix系统vi修改命令_Linux基础知识必备:利用vi编辑器创建和编辑正文文件 2019-04-21
天涯明月刀开发_玩家被天涯明月刀手游“冷落”?六大门派角色竟不带正眼看人... 2019-04-21
this指向undefined uiapp_一个this都没有,真好 2019-04-21
add p4 多个文件_2-3【微信小程序全栈开发课程】index页面完善--vue文件代码解析... 2019-04-21
5w2h原则指的是什么_什么是5W2H分析法?一首小诗带入进入大门。 2019-04-21
技校毕业是什么学历_中等职业学校是什么_中等职业学校毕业是什么学历 2019-04-21
2压缩备份数据库_MySQL数据备份与恢复(二) xtrabackup工具 2019-04-21
英特尔cpu发布时间表_被嘲讽的英特尔核显,强大能力其实超乎你的想象 2019-04-21
chi2inv函数 matlab_MATLAB概率和统计(2) 2019-04-21
lisp修改上一个图素_在Windows上安装Haskell 2019-04-21
ad19 导出step 没有pcb_几款主流PCB软件哪个最好用,你用过几款? 2019-04-21
json mysql 字段 默认值_Newtonsoft.Json 六个超简单又实用的特性,值得一试 【上篇】... 2019-04-21
ocdma相干非相干_《Acconeer 60GHz脉冲相干雷达芯片:A111》 2019-04-21
修改表格字体颜色_Excel技巧:Excel如何修改字体颜色 2019-04-21
native react 变颜色 点击_React Native主动更改StackNavigator标头颜色 2019-04-21
prism项目搭建 wpf_WPF MVVM使用prism4.1搭建 2019-04-21
python发微信红包群_用Python实现微信自动化抢红包,再也不用担心抢不到红包了... 2019-04-21
python中func自定义函数_Python函数之自定义函数&作用域&闭包 2019-04-21
wget连接指定端口_端口通不通 telnet wget ssh 2019-04-21