外观模式(Facade)

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

你可能感兴趣的:(外观模式(Facade))