外觀模式(Facade),為子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口是的這一子系統更加容易使用。
主方法
public class main {
public static void main(String[] args) {
Fund fund = new Fund();
fund.BuyFund();//基金購買
fund.SellFund();//基金贖回
}
}
外觀類,它需要了解所有的子系統的方法或屬性,進行組合,以備外界調用
public class Fund {
Stock1 stock1;
Stock2 stock2;
Stock3 stock3;
NationalDebt1 nationalDebt1;
Realty1 realty1;
public Fund() {
stock1 = new Stock1();
stock2 = new Stock2();
stock3 = new Stock3();
nationalDebt1 = new NationalDebt1();
realty1 = new Realty1();
}
public void BuyFund() {
stock1.Buy();
stock2.Buy();
stock3.Buy();
nationalDebt1.Buy();
realty1.Buy();
}
public void SellFund() {
stock1.Sell();
stock2.Sell();
stock3.Sell();
nationalDebt1.Sell();
realty1.Sell();
}
}
子系統類
public class Stock1 {
public void Sell() {
System.out.println("股票1賣出");
}
public void Buy() {
System.out.println("股票1買入");
}
}
public class Stock2 {
public void Sell() {
System.out.println("股票2賣出");
}
public void Buy() {
System.out.println("股票2買入");
}
}
public class Stock3 {
public void Sell() {
System.out.println("股票3賣出");
}
public void Buy() {
System.out.println("股票3買入");
}
}
public class NationalDebt1 {
public void Sell() {
System.out.println("國債1賣出");
}
public void Buy() {
System.out.println("國債1買入");
}
}
public class Realty1 {
public void Sell() {
System.out.println("房地產1賣出");
}
public void Buy() {
System.out.println("房地產1買入");
}
}