外观模式(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买入");
}
}