欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

设计模式入门学习之外观模式实例讲解,设计模式实例讲解

来源: javaer 分享于  点击 44690 次 点评:136

设计模式入门学习之外观模式实例讲解,设计模式实例讲解


外观模式:外部系统与子系统的通信必须通过一个统一的对象进行

举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样了,我可以吩咐他去找酒店,找主持人等等。。。

来看一下类图:

\

在这里Facade就相当于婚庆公司的角色,我们作为client直接调用Facade的方法,而不关心车队、酒店、主持人等是如何找到的。

代码实现:

public class Car {
    public void carList() {
        System.out.println("-----");
    }
}

public class Host {
    public void married() {
        System.out.println("-----");
    }
}

public class Hotel {
    public void party() {
        System.out.println("-----");
    }
}

public class Facade {
    private Host host =new Host();
    private Hotel hotel =new Hotel();
    private Car car=new Car();

    public void married(){
        host.married();
    }
    public void carList(){
        car.carList();
    } public void party(){
        hotel.party();
    }
}

学习更多设计模式请参考:入门设计模式之汇总篇

外观模式:外部系统与子系统的通信必须通过一个统一的对象进行

举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样了,我可以吩咐他去找酒店,找主持人等等。。。

来看一下类图:

\

在这里Facade就相当于婚庆公司的角色,我们作为client直接调用Facade的方法,而不关心车队、酒店、主持人等是如何找到的。

代码实现:

public class Car {
    public void carList() {
        System.out.println("-----");
    }
}

public class Host {
    public void married() {
        System.out.println("-----");
    }
}

public class Hotel {
    public void party() {
        System.out.println("-----");
    }
}

public class Facade {
    private Host host =new Host();
    private Hotel hotel =new Hotel();
    private Car car=new Car();

    public void married(){
        host.married();
    }
    public void carList(){
        car.carList();
    } public void party(){
        hotel.party();
    }
}
相关栏目:

用户点评