星星博客 »  > 

设计模式——外观类模式

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对象及具体实现方法,只需要调用方法即可。

外观类只给你该给你看的用的,不给你你不该看的用的。嘤嘤嘤好真实。

相关文章