写点什么

Java 入门你值得拥有!浅谈 Facade 外观模式

发布于: 3 小时前

前言

疫情过去,真正的春暖花开又回来了,时不时的可以和朋友约个饭,感慨今年的工作竞争压力很大,工作很不好找。作为一个开发人员,你是否面上了理想的公司,拿到了理想中的薪资?


作为程序员,跳槽就是最好的涨薪方式。前提当然是你有足够实力,而不是只会纸上谈兵。面试准备不充分,就是浪费时间,更是对自己不负责任。


今天给大家分享一份由粉丝投稿,我精心整理出来的一份 1200 页 Java 架构面试专题(文末见面试答案),绝大部分都是一线大厂的面试真题,可以根据这份面试专题查漏补缺,希望能够帮助你尽快找到工作!


package designMode.facade2;


public class Client {


public static void main(String[] args) {
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
复制代码


}





4、运行结果:


![up-68f9b51d1062617adffd7600cc30eaf2d24.png](https://static001.geekbang.org/infoq/82/828be8279d392b2cca0c0858d84ce35b.png)


**二、外观模式的应用**


1、应用场景


(1)客户端不需要知道内部的复杂联系,整个系统只提供一个“接待员”即可


(2)定义系统的入口


2、方法


客户端不与系统耦合,外观类与系统耦合


3、优点


(1)减少了系统的相互依赖


(2)提高了灵活性,不管系统内部如何变化,只要不影响到外观对象,任你自由活动


(3)提高了安全性,想让你访问什么你就只能访问什么


4、缺点


修改麻烦


5、使用场景


(1)为一个复杂的模块或子系统提供一个外界访问的接口


(2)子系统相对独立,外界对子系统的访问只要黑箱操作即可


(3)预防低水平人员带来的风险扩散


6、应用实例


基金(用户只和基金打交道,实际操作为基金经理人与股票和其它投资品打交道)


**三、外观模式的实现**


我们就以开篇说的基金为例,来编写一下代码,熟悉外观模式的使用。UML图如下:


![1018770-20180516222046525-864875223.png](https://static001.geekbang.org/infoq/97/976961bbfe397fd99217c939bbbd9396.png)


1、基金类(Fund)


基金类,基金经理人通过该类作为中间交互者,可以接受投资者的资金,统一对股票、国债、房地产进行购买和赎回操作。
复制代码


package designMode.facade2;


public class Fund {


Stock1 stock1;
Stock2 stock2;
Stock3 stock3;


public Fund() {
stock1 = new Stock1();
stock2 = new Stock2();
stock3 = new Stock3();
}


//购买基金
public void buyFund() {
stock1.buy();
stock2.buy();
stock3.buy();
}


//赎回基金
public void sellFund() {
stock1.sell();
stock2.sell();
stock3.sell();
}
复制代码


}





2、股票、国债、房地产类


这里放一个股票作为示例,其余债券类似。内部由买入和卖出两种操作。
复制代码


public class Stock1 {


//买股票
public void buy() {
System.out.println("股票1买入");
}


//卖股票
public void sell() {
System.out.println("股票1卖出");
}
复制代码


}





3、client客户端


用户通过该类对基金进行购买和赎回操作。
复制代码


package designMode.facade2;


public class Client {


public static void main(String[] args) {
Fund fund = new Fund();


//基金购买
fund.buyFund();
复制代码

Kafka 进阶篇知识点


Kafka 高级篇知识点



44 个 Kafka 知识点(基础+进阶+高级)解析如下



由于篇幅有限,小编已将上面介绍的**《Kafka 源码解析与实战》、Kafka 面试专题解析、复习学习必备 44 个 Kafka 知识点(基础+进阶+高级)都整理成册,全部都是 PDF 文档**,有需求的朋友可以戳这里免费下载

用户头像

VX:vip204888 领取资料 2021.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Java入门你值得拥有!浅谈Facade外观模式