java常用设计模式详解,java三种常用设计模式和实例
目录
定义案例需求方案:外观模式实现分析总结
定义
外观模式为多个复杂的子系统,提供了一个一致的界面,使得调用端只和这个接口发生调用,而无须关系这个子系统内部的细节
案例
需求
看电影的时候需要进行一系列的操作,比如打开播放器,放下屏幕,打开投影仪,打开音响等,这个要怎么进行管理呢
方案:外观模式实现
定义播放器类
公有类玩家{私有静态类Player Player=新玩家();私有玩家(){}公共静态Player getInstance(){ return Player;} public void on(){ system。出去。println(打开播放器);} public void off(){ system。出去。println(关闭播放器);} public void play(){ system。出去。println(使用播放器播放电影);} public void pause(){ system。出去。println(暂停播放器);} public void select(){ system。出去。println(选择喜欢的电影);}}定义投影仪类
公共课投影仪{私人静态投影仪投影仪=新投影仪();私有投影仪(){}公共静态投影仪getInstance(){返回投影仪;} public void on(){ system。出去。println(放下屏幕,打开投影仪);} public void off(){ system。出去。println(关闭投影仪);} public void focus(){ system。出去。println(调节投影仪焦距);} public void zoom(){ system。出去。println(投影仪变焦);}}定义音响类
公共类立体声{私有静态立体声立体声=新立体声();私有立体声(){}公共静态Stereo getInstance(){返回Stereo;} public void on(){ system。出去。println(打开音响);} public void off(){ system。出去。println(关闭音响);}公共void set volume(){ system。出去。println(调节音响音量);}}定义爆米花机类
/** * 爆米花机* @ author : liya Jie * @创建时间:2022/3/2 14:24 * @ version :1.0 */公共类爆米花{私有静态爆米花爆米花=新爆米花();私有爆米花(){}公共静态爆米花getInstance(){返回爆米花;} public void on(){ system。出去。println(打开爆米花机);} public void off(){ system。出去。println(关闭爆米花机);} public void pop(){ system。出去。println(制作爆米花);}}定义家庭影院外观类
公共类HomeTheaterFacade { //聚合各个子系统私人玩家玩家;私房爆米花爆米花;私人投影仪投影机;私人立体声音响;public HomeTheaterFacade(){ } //全参构造器公共家庭剧院播放器播放器,爆米花爆米花,投影仪投影机,立体声音响){ this . player=player this . popcorn=爆米花;this .投影仪=投影仪;this.stereo=立体声;} //准备阶段public void ready(){爆米花。on();玩家。on();投影仪。on();立体声。on();} //播放公共void play(){ player。select();爆米花。pop();投影仪。焦点();立体声。设置音量();} //结束public void end(){ player。off();爆米花。off();投影仪。off();立体声。off();}}定义测试类
public class Test { public static void main(String[]args){ HomeTheaterFacade HomeTheaterFacade=new HomeTheaterFacade(player。getInstance()、Popcorn.getInstance()、投影仪。getinstance()、stereo。getinstance());家庭影院门面。ready();家庭影院门面。play();家庭影院门面。end();}}查看测试结果
00-1010我们操作了播放器,投影仪等的开和关。通过家庭影院外观类HomeTheaterFacade的ready、play和end方法。对于家庭影院外观课,他不需要知道播放器、投影仪等的开合如何。实现了。一定程度上实现了解耦,易于维护和扩展。
分析
优势:
1.外观模式屏蔽了子系统的实现细节(安全性)。
2.外观模式降低了客户端和子系统之间交互的复杂性,将客户端和子系统解耦,并使子系统中的模块更易于维护和扩展。
3.合理使用外观模式可以帮助我们更好地划分访问级别。
使用场景
1.构建分层系统时,使用外观模式可以简化子系统之间的依赖关系。
2.当存在一个子系统多、操作量大的复杂系统时,此时可以使用外观模式。
3.当客户端和几个子系统之间有很多耦合时,可以引入外观模式来分离它们,提高子系统的独立性和可移植性。
以上是Java设计模式的外观模式实例的细节。更多关于Java外观模式的信息,请关注热门IT的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。