外观模式

外观模式

  • 也叫过程模式:外观模式为子系统中的一组接口提供一个一致的界面.此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
  • 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端口只需跟这个接口发生调用,而无序关系这个子系统的内部细节
  • 角色:
    • 外观类:为调用提供同一的调用接口,外观类知道那些子系统负责处理请求,从而j将调用端的请求代理给适当子系统对象
    • 调用者:外观接口的调用者
    • 子系统的聚合:指模块或者子系统,处理facade(外观类)对象指派的任务,他是功能的提供者
class DVDPlayer{
    private static DVDPlayer instance=new DVDPlayer();
    static DVDPlayer getInstance(){return instance;}
    void on(){sout("dvd on");}
    void off(){sout("dvd off");}
    void play(){sout("dvd play");}
    void pause(){sout("dvd pause");}
}
class Popcorn{
    private static Popcorn instance=new Popcorn();
    static Popcorn getInstance(){return instance;}
    void on(){sout("popcorn on");}
    void off(){sout("popcorn off");}
    void pop(){sout("popcorn pop");}
}
class Projector{
    private static Projector instance=new Projector();
    static Projector getInstance(){return instance;}
    void on(){sout("projector on");}
    void off(){sout("projector off");}
    void focus(){sout("projector focus");}
}
class Screnn{
    private static Screnn instance=new Screnn();
    static Screnn getInstance(){return instance;}
    void up(){sout("screnn up");}
    void down(){sout("screnn down");}
}
class Stereo{
    private static Stereo instance=new Stereo();
    static Stereo getInstance(){return instance;}
    void on(){sout("stereo on");}
    void off(){sout("stereo off");}
    void up(){sout("stereo up");}
    void down(){sout("stereo down");}
}
class Light{
    private static Light instance=new Light();
    static Light getInstance(){return instance;}
    void on(){sout("light on");}
    void off(){sout("light off");}
    void dim(){sout("light dim");}
    void bright(){sout("light bright");}
}
class Theater{
    //定义各个子系统对象
    private Light light;
    private Screen screen;
    private Stereo stereo;
    private DVDPlayer dvdPlayer;
    private Projector projector;
    Theater(){
        this.light=Light.getInstance();
        this.screen=Screen.getInstance();
        this.stereo=Stereo.getInstance();
        this.dvdPlayer=DVDPlayer.getInstance();
        this.projector=Projector.getInstance();        
    }
    void read(){
        popcorn.on();
        popcorn.pop();
        screen.down();
        projector.on();
        stereo.on();
        dvd.on();
    }
    void end(){
        all.end();
    }
    psvm(){
        
    }
}
class mian{
    psvm(){
        TheaterFacade theater=new TheaterFacade();
        theater.on()
        theater.end()
    }
}

Mybatis中的外观模式

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容