class Stock{
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
public void Sell(){
System.out.println("sell "+name);
}
public void Buy(){
System.out.println("buy "+name);
}
}
class Fund
{
Stock gu1;
Stock gu2;
Stock gu3;
public Fund(){
gu1=new Stock();
gu1.setName("gu1");
gu2=new Stock();
gu2.setName("gu2");
gu3=new Stock();
gu3.setName("gu3");
}
public void BuyFund(){
gu1.Buy();
gu2.Buy();
gu3.Buy();
}
public void SellFund(){
gu1.Sell();
gu2.Sell();
gu3.Sell();
}
}
public class TestFacade {
public static void main(String[] args){
Fund fund=new Fund();
fund.BuyFund();
fund.SellFund();
}
}
通过Fund对stock封装,这样外面不用了解stock,知道几个stock实例。
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,使得子系统更加容易使用。
在设计的初期,应该有意识的将不同的两个层分离。比如业务层和表示层,访问层和业务层之间建立外观模式。
外观模式是为了减少耦合。因为提供统一的接口。