java设计形式之外观模式
java设计模式之外观模式
这一节说说外观模式,这个模式还是很简单的,平时也许我们都用上了,只是不知道它叫外观模式而已,这个模式的模拟环境是股票的问题。
我们先来分析下股票的一些知识,在股市上,大多数人都是赔钱的,这是为什么呢,原因还是比较明朗的,一个人面对那么多的股票信息,还要对政策等一系列信息进行分析,而大多数股民都不熟悉,更加谈不上专业,就一个股票软件要完全弄明白都是够呛。从这方面来说,不赔钱都难。那有没有专业的机构帮我们做呢?这样基金就出现了,你可以将钱投给基金,基金的组织的都是专业级的,让他们帮我们处理,我们只需要跟基金进行交易,而基金再跟复杂的股票打交道,这样不就比较简单了。而这种思想就是外观模式的表现。感觉是不是似曾相识呢。看来设计模式也来源于我们的生活啊。
1。基金,也就是外观类
package com.yjck.facade; /** * 基金,也就是是外观类 */ public class Fund { /** * 股票 */ private Stock1 stock1; private Stock2 stock2; private Stock3 stock3; /** * 国债 */ private NationalDebt1 nd; /** * 房地产 */ private Realty1 realty1; public Fund(){ this.stock1 = new Stock1(); this.stock2 = new Stock2(); this.stock3 = new Stock3(); this.nd = new NationalDebt1(); this.realty1 = new Realty1(); } /** * 基金买入 */ public void buyFund(){ this.stock1.buy(); this.stock2.buy(); this.stock3.buy(); this.nd.buy(); this.realty1.buy(); } /** * 基金卖出 */ public void sellFund(){ this.stock1.sell(); this.stock2.sell(); this.stock3.sell(); this.nd.sell(); this.realty1.sell(); } }
2。具体的基金信息省略,easy的狠狠
3。客户端调用,我们只需要面对基金
package com.yjck.facade; public class Run { /** * 客户 */ public static void main(String[] args) { Fund fund = new Fund(); fund.buyFund(); fund.sellFund(); } /**********外观模式的说明********* * 外观模式只是暴露给我们一个拥有操作的类 * 而外观类将负责的处理封装起来,客户端 * 只需要对外观类进行操作,而不需要明白 * 外观类到底是如何进行操作的。也就是说 * 对用户是透明的。 */ }