美文网首页
设计模式之外观模式

设计模式之外观模式

作者: smallstrong | 来源:发表于2017-04-23 12:39 被阅读8次

    外观模式,例子是我经常去莲花街一家叫好吃不如饺子的店,东西好吃,便宜实惠。

    外观模式UML.png
    interface Food{
        void eat();
    }
    

    食物接口 吃方法

    class Dumplings implements Food{
        public void eat(){
            //嫂子家的饺子,感觉一般般
        }
    }
    

    饺子

    class SaucedNoodles implements Food{
        public void eat(){
            //嫂子家的打卤面  么的说
        }
    }
    

    打卤面

    class IronBoardRice implements Food{
        public void eat(){
            //嫂子家的铁板饭  也么的说
        }
    }   
    

    铁板饭

    class RestaurantFacade{
        Food mDumplings,mSaucedNoodles,mIronBoardRice;
        
        public RestaurantFacade(){
            //无参构造
        }
        
        public void eatDumplings(){
            if(mDumplings == null){
                mDumplings = new Dumplings();
            }
            mDumplings.eat();
        }
        
        public void eatSaucedNoodles(){
            if(mSaucedNoodles == null){
                mSaucedNoodles = new SaucedNoodles();
            }
            mSaucedNoodles.eat();
        }
        
        public void eatIronBoardRice(){
            if(mIronBoardRice == null){
                mIronBoardRice = new IronBoardRice();
            }
            mIronBoardRice.eat();
        }
    }
    

    好吃不如饺子这家店,提供各色菜系

    public class Client{
        public static void main(String[] args){
            RestaurantFacade mRestaurantFacade = new RestaurantFacade();
            mRestaurantFacade.eatDumplings();//吃饺子
            mRestaurantFacade.eatSaucedNoodles();//吃打卤面
            mRestaurantFacade.eatIronBoardRice();//吃铁板饭
        }
    }
    

    客户端调用这家店,点菜吃东西

    个人的理解

    外观模式又叫门面模式,在很多开源库中都很常见,更多的作用是一种客户端与具体实现类的隔离。

    相关文章

      网友评论

          本文标题:设计模式之外观模式

          本文链接:https://www.haomeiwen.com/subject/prxyzttx.html