10.外观类模式
外观类就像一个黑盒,只给你结果,不告诉你具体内容。
也像一个看不见里面的内容的贩卖机,只能通过屏幕进行查看商品及购买,您只管买,其他的事儿我来解决!
用到了最少知识原则(least KnowLedge Principle)。
下面用一个例子来实现
public interface Buy {
void buy();
}
public class BuyWater implements Buy{
@Override
public void buy() {
System.out.println("买瓶水,已出货");
}
}
public class BuyCookie implements Buy{
@Override
public void buy() {
System.out.println("买饼干,已出货");
}
}
public class ClientBuy {
private Buy buyCookie;
private Buy buyWater;
public void buyCookie(){
buyCookie.buy();
}
public void buyWater(){
buyWater.buy();
}
}
public class Client {
public static void main(String[] args) {
ClientBuy clientBuy = new ClientBuy();
clientBuy.buyCookie();
clientBuy.buyWater();
}
}
buyWater,buyCookie这两个内部对象并不能被Client访问到,对Client进行了隐藏,而buyCookie()与buyWater()方法却是对Client开放的,Client不需要知道buyCookie,buyWater对象及具体实现方法,只需要调用方法即可。
外观类只给你该给你看的用的,不给你你不该看的用的。嘤嘤嘤好真实。