Head First设计模式学习笔记-------(8)外观模式

来源:互联网 发布:手机聊天软件 编辑:程序博客网 时间:2024/06/06 09:47

今天我们介绍一个比较好理解的模式------------外观模式

当你需要设计下面这么多类的时候:


我们可以给这个系统设计一个外观:


外观类:

public class HomeTheaterFacade {    Amplifier amp;    Tuner tuner;    DvdPlayer dvd;    CdPlayer cd;    Projectpr projectpr;    TheaterLights lights;    Screen screen;    PopcornPopper popper;    public HomeTheaterFacade (Amplifier amp,Tuner tuner,DvdPlayer dvd,CdPlayer cd,Projectpr projectpr,TheaterLights lights,Screen screen,PopcornPopper popper) {        this.amp = amp;        this.tuner = tuner;        this.dvd = dvd;        this.cd = cd;        this.projectpr = projectpr;        this.lights = lights;        this.screen = screen;        this.popper = popper;    }    public void watchMovie(String movie) {        System.out.println("Get ready to watch a movie");        popper.on();        popper.pop();        lights.dim();        screen.dowm();        projectpr.on();        amp.on();        dvd.on();    }}
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

外观模式类图:



总结:

1:当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观。

2:外观将客户从一个复杂的子系统中解耦。

3:实现一个外观,需要将子系统组合进外观中,然后讲工作委托给子系统执行。

4:你可以为一个子系统实现一个以上的外观。

0 0
原创粉丝点击