外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
package facade;
/**
* 外观模式(Facade)
* 股票1
*/
public class Stock1 {
// 卖股票
public void sell() {
System.out.println("股票1卖出");
}
// 买股票
public void buy() {
System.out.println("股票1买入");
}
}
package facade;
/**
* 外观模式(Facade)
* 股票2
*/
public class Stock2 {
// 卖股票
public void sell() {
System.out.println("股票2卖出");
}
// 买股票
public void buy() {
System.out.println("股票2买入");
}
}
package facade;
/**
* 外观模式(Facade)
* 股票3
*/
public class Stock3 {
// 卖股票
public void sell() {
System.out.println("股票3卖出");
}
// 买股票
public void buy() {
System.out.println("股票3买入");
}
}
package facade;
/**
* 外观模式(Facade)
* 国债1
*/
public class NationalDebt1 {
// 卖国债
public void sell() {
System.out.println("国债1卖出");
}
// 买国债
public void buy() {
System.out.println("国债1买入");
}
}
package facade;
/**
* 外观模式(Facade)
* 房产1
*/
public class Realty1 {
// 卖房产
public void sell() {
System.out.println("房产1卖出");
}
// 买房产
public void buy() {
System.out.println("房产1买入");
}
}
package facade;
/**
* 外观模式(Facade)
* 基金类
*/
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();
}
}
package facade;
/**
* 外观模式(Facade)
* 客户端main方法
*/
public class Client {
public static void main(String[] args) {
Fund fund = new Fund();
// 基金买入
fund.buyFund();
// 基金赎回
fund.sellFund();
}
}