首页 / 设计模式 / 设计模式--外观模式
设计模式--外观模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式--外观模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4412字,纯文字阅读大概需要7分钟。
内容图文
代码说明:
package com.java.jikexueyuan.facademode.hometheater; //爆米花 public class Popcorn { //单例模式,构造函数私有化 private static Popcorn instance = null; private Popcorn() { } //单例模式创建实例 public static Popcorn getInstance() { if (instance == null) { instance = new Popcorn(); } return instance; } public void on() { System.out.println("Popcorn On"); } public void off() { System.out.println("Popcorn Off"); } public void pop() { System.out.println("Popcorn is popping"); } }
package com.java.jikexueyuan.facademode.hometheater; //DVD播放器 public class DVDPlayer { private static DVDPlayer instance = null; private DVDPlayer() { } public static DVDPlayer getInstance() { if (instance == null) { instance = new DVDPlayer(); } return instance; } public void on() { System.out.println("DVDPlayer On"); } public void off() { System.out.println("DVDPlayer Off"); } public void play() { System.out.println("DVDPlayer is playing"); } public void pause() { System.out.println("DVDPlayer pause"); } public void setdvd() { System.out.println("DVDPlayer is setting dvd"); } }
package com.java.jikexueyuan.facademode.hometheater; //投影仪 public class Projector { private int size=5; private static Projector instance = null; private Projector() { } public static Projector getInstance() { if (instance == null) { instance = new Projector(); } return instance; } public void on() { System.out.println("Projector On"); } public void off() { System.out.println("Projector Off"); } public void focus() { System.out.println("Popcorn is focus"); } public void zoom(int size) { this.size=size; System.out.println("Popcorn zoom to"+size); } }
package com.java.jikexueyuan.facademode.hometheater; //屏幕 public class Screen { private static Screen instance = null; private Screen() { } public static Screen getInstance() { if (instance == null) { instance = new Screen(); } return instance; } public void up() { System.out.println("Screen up"); } public void down() { System.out.println("Screen down"); } }
package com.java.jikexueyuan.facademode.hometheater; //音响 public class Stereo { private static Stereo instance = null; private int volume = 5; private Stereo() { } public static Stereo getInstance() { if (instance == null) { instance = new Stereo(); } return instance; } public void on() { System.out.println("Stereo On"); } public void off() { System.out.println("Stereo Off"); } public void setVolume(int vol) { volume = vol; System.out.println("the volume of Stereo is set to " + volume); } public void addVolume() { if (volume < 11) { volume++; setVolume(volume); } } public void subVolume() { if (volume > 0) { volume--; setVolume(volume); } } }
package com.java.jikexueyuan.facademode.hometheater; //灯光 public class TheaterLights { private static TheaterLights instance = null; private TheaterLights() { } public static TheaterLights getInstance() { if (instance == null) { instance = new TheaterLights(); } return instance; } public void on() { System.out.println("TheaterLights On"); } public void off() { System.out.println("TheaterLights Off"); } public void dim(int d) { System.out.println("TheaterLights dim to " + d + "%"); } public void bright() { dim(100); System.out.println("TheaterLights bright"); } }
package com.java.jikexueyuan.facademode.hometheater; //外观模式--遥控器 public class HomeTheaterFacade { private TheaterLights mTheaterLights; private Popcorn mPopcorn; private Stereo mStereo; private Projector mProjector; private Screen mScreen; private DVDPlayer mDVDPlayer; //组合对象功能 public HomeTheaterFacade() { mTheaterLights = TheaterLights.getInstance(); mPopcorn = Popcorn.getInstance(); mStereo = Stereo.getInstance(); mProjector = Projector.getInstance(); mScreen = Screen.getInstance(); mDVDPlayer = DVDPlayer.getInstance(); } public void ready() { mPopcorn.on(); mPopcorn.pop(); mScreen.down(); mProjector.on(); mStereo.on(); mDVDPlayer.on(); mDVDPlayer.setdvd(); mTheaterLights.dim(10); } public void end() { mPopcorn.off(); mTheaterLights.bright(); mScreen.up(); mProjector.off(); mStereo.off(); mDVDPlayer.setdvd(); mDVDPlayer.off(); } //单个对象功能 public void play() { mDVDPlayer.play(); } public void pause() { mDVDPlayer.pause(); } }
package com.java.jikexueyuan.facademode; import com.java.jikexueyuan.facademode.hometheater.HomeTheaterFacade; //代码测试 public class MainTest { public static void main(String[] args) { HomeTheaterFacade mHomeTheaterFacade=new HomeTheaterFacade(); mHomeTheaterFacade.ready(); mHomeTheaterFacade.play(); } }
最少知识原则
最少知识原则:尽量减少对象之间的交互,只留几个“密友” 项目设计中就是不要让太多的类耦合在一起
内容总结
以上是互联网集市为您收集整理的设计模式--外观模式全部内容,希望文章能够帮你解决设计模式--外观模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。