股民炒股票測試
/** * 股票1 * Created by callmeDevil on 2019/7/20. */ public class Stock1 { public void sell() { System.out.println("股票1賣出"); } public void buy() { System.out.println("股票1買入"); } }
/** * 股票2 * Created by callmeDevil on 2019/7/20. */ public class Stock2 { // 代碼與股票1相似 } /** * 股票3 * Created by callmeDevil on 2019/7/20. */ public class Stock3 { // 代碼與股票1相似 } /** * 國債1 * Created by callmeDevil on 2019/7/20. */ public class NationalDebt1 { // 代碼與股票1相似 } /** * 房地產1 * Created by callmeDevil on 2019/7/20. */ public class Realty1 { // 代碼與股票1相似 }
/** * 炒股測試 * Created by callmeDevil on 2019/7/20. */ public class Test { public static void main(String[] args) { Stock1 stock1 = new Stock1(); Stock2 stock2 = new Stock2(); Stock3 stock3 = new Stock3(); NationalDebt1 debt1 = new NationalDebt1(); Realty1 realty1 = new Realty1(); // 用戶須要瞭解股票、國債、房地產狀況,須要參與這些項目的具體買賣,耦合性很高 stock1.buy(); stock2.buy(); stock3.buy(); debt1.buy(); realty1.buy(); stock1.sell(); stock2.sell(); stock3.sell(); debt1.sell(); realty1.sell(); } }
股票1買入 股票2買入 股票3買入 國債1買入 房地產1買入 股票1賣出 股票2賣出 股票3賣出 國債1賣出 房地產1賣出
爲了子系統中的一組接口提供一個一致的界面,此模式定義了一個高層的接口,這個接口使得這個子系統更加容易使用。設計
/** * 基金類(Facade) * Created by callmeDevil on 2019/7/20. */ public class Fund { private Stock1 stock1; private Stock2 stock2; private Stock3 stock3; private NationalDebt1 debt1; private Realty1 realty1; public Fund(){ stock1 = new Stock1(); stock2 = new Stock2(); stock3 = new Stock3(); debt1 = new NationalDebt1(); realty1 = new Realty1(); } // 買基金 public void buyFund(){ stock1.buy(); stock2.buy(); stock3.buy(); debt1.buy(); realty1.buy(); } // 賣基金 public void sellFund(){ stock1.sell(); stock2.sell(); stock3.sell(); debt1.sell(); realty1.sell(); } }
/** * 基金測試(外觀模式) * Created by callmeDevil on 2019/7/20. */ public class Test { public static void main(String[] args) { // 此時用戶不須要了解股票,甚至能夠對股票一無所知,買了基金就回家睡覺 // 一段時間後再贖回就能夠大把數錢,參與股票的具體買賣都有基金公司完成 // 客戶端代碼很是簡潔明瞭 Fund fund = new Fund(); // 購買基金 fund.buyFund(); // 基金贖回 fund.sellFund(); } }
測試結果同上,此處省略。3d