Head First设计模式笔记(外观模式)

来源:互联网 发布:阿里云能不能翻墙 编辑:程序博客网 时间:2024/06/05 19:35

外观模式:提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用
外观模式我自我感觉很简单,它的核心应该是封装细节,让接口更加简单,用户不必关系具体的细节,在下面展现的代码中因为简单,我就没展现全面
1.外观模式的核心类

public class HomeTheaterFacade {    Amplifier amp;    Tuner tuner;    DvdPlayer dvd;    CdPlayer cd;    Projector projector;    ThreaterLights lights;    Screen screen;    PopcornPopper popper;    public HomeTheaterFacade(Amplifier amp,Tuner tuner,DvdPlayer dvd,CdPlayer cd,Projector projector,Screen screen            ,ThreaterLights lights,PopcornPopper popper){        this.amp = amp;        this.tuner = tuner;        this.dvd = dvd;        this.cd = cd;        this.projector = projector;        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.down();        projector.wideScreenMode();        amp.on();        amp.setDvd(dvd);        amp.setSurroundSound();        amp.setVolume(5);        dvd.on();        dvd.play(movie);    }    public void endMovie(){        System.out.println("shutting movie theater down...");        popper.off();        lights.on();        screen.up();        projector.off();        amp.off();        dvd.stop();        dvd.eject();        dvd.off();    }}

2.测试类

public class HomeTheaterTestDrive {    public static void main(String[] args){        //实例化组件        HomeTheaterFacade homeThreater = new HomeTheaterFacade(amp,tuner,dvd,cd,projector,screen,lights,popper);        homeThreater.watchMovie("大话西游");        homeThreater.endMovie();    }}
阅读全文
0 0
原创粉丝点击