当前位置: 首页 > news >正文

网站虚拟主机共享网站域名年费

网站虚拟主机共享,网站域名年费,爬虫做视频网站,江东seo做关键词优化一、什么是外观模式#xff1f; 1.定义 在日常生活中#xff0c;许多人喜欢通过遥控器来控制家中的电视、音响、DVD 播放器等设备。虽然这些设备各自独立工作#xff0c;但遥控器提供了一个简洁的界面#xff0c;让用户可以轻松地操作多个设备。而这一设计理念正是 外观模…一、什么是外观模式 1.定义 在日常生活中许多人喜欢通过遥控器来控制家中的电视、音响、DVD 播放器等设备。虽然这些设备各自独立工作但遥控器提供了一个简洁的界面让用户可以轻松地操作多个设备。而这一设计理念正是 外观模式Facade Pattern 的核心思想——通过为复杂的子系统提供一个统一的接口简化客户端与这些子系统的交互。 外观模式是一种结构型设计模式旨在为复杂系统中的多个子系统提供一个统一的高层接口使得客户端可以通过这个接口轻松与各个子系统进行交互而无需直接处理复杂的实现细节。换句话说外观模式隐藏了子系统的复杂性为客户端提供了一个简单的接口。 2.外观模式的关键点 提供一个高层接口让客户端通过它与多个子系统交互。隐藏系统内部的复杂性简化外部调用。使得子系统的客户端与子系统之间解耦降低了系统之间的依赖性。 二、外观模式的应用场景 复杂系统的简化接口当一个系统包含多个复杂的子系统时使用外观模式可以将这些复杂的操作封装成一个统一的接口简化客户端的使用。系统解耦如果你不希望系统的客户端直接与各个子系统进行耦合外观模式提供了一个解耦的方案。通过外观类客户端不需要了解子系统的内部实现减少了对系统内部的了解和依赖。 三、外观模式的示例 接下来我们通过一个家庭影院系统的例子来演示外观模式的应用。我们设想有一个家庭影院系统包含多个设备电视、音响和 DVD 播放器。每个设备有不同的控制方法用户需要通过多个操作来启动或关闭它们。为了简化操作我们可以通过外观模式将这些操作封装成一个统一的接口。 1.设备类 // 电视类 public class TV {public void on() {System.out.println(电视打开了);}public void off() {System.out.println(电视关上了);} }// 音响类 public class SoundSystem {public void on() {System.out.println(音响开了);}public void off() {System.out.println(音响关了);} }// DVD 播放器类 public class DVDPlayer {public void on() {System.out.println(DVD 播放器开了);}public void off() {System.out.println(DVD 播放器关了);}public void play() {System.out.println(播放电影...);}public void stop() {System.out.println(停止播放...);} }2.外观类 // 家庭影院外观类 public class HomeTheaterFacade {private TV tv;private SoundSystem soundSystem;private DVDPlayer dvdPlayer;public HomeTheaterFacade(TV tv, SoundSystem soundSystem, DVDPlayer dvdPlayer) {this.tv tv;this.soundSystem soundSystem;this.dvdPlayer dvdPlayer;}// 观看电影public void watchMovie() {tv.on();soundSystem.on();dvdPlayer.on();dvdPlayer.play();System.out.println(电影已经播放);}// 停止电影public void stopMovie() {tv.off();soundSystem.off();dvdPlayer.off();dvdPlayer.stop();System.out.println(电影已经关闭);} }3.客户端代码 // 测试外观模式 public class TestFacade {public static void main(String[] args) {// 创建设备实例TV tv new TV();SoundSystem soundSystem new SoundSystem();DVDPlayer dvdPlayer new DVDPlayer();// 创建家庭影院外观实例HomeTheaterFacade facade new HomeTheaterFacade(tv, soundSystem, dvdPlayer);// 使用外观类操作设备facade.watchMovie();facade.stopMovie();} }4.输出结果 电视打开了 音响开了 DVD 播放器开了 播放电影... 电影已经播放 电视关上了 音响关了 DVD 播放器关了 停止播放... 电影已经关闭 四、外观模式的组成 1.组成部分 外观类Facade Class 外观类是外观模式的核心负责定义一个统一的高层接口提供给客户端调用。它封装了子系统的复杂操作使得客户端能够通过这个接口与多个子系统进行交互。外观类通常通过组合和调用子系统类来实现对外的简化接口。 子系统类Subsystem Classes 子系统类是一些具体的类它们实现了系统的业务逻辑。子系统类的职责比较具体负责实际的功能实现。外观类通过委托的方式向这些子系统发出请求。子系统类之间通常是彼此独立的外观类负责协调它们的调用。 客户端Client 客户端通过外观类提供的接口来访问系统。客户端不需要了解子系统类的复杂性只需要通过外观类进行操作从而实现对整个系统的控制。 2.组成关系 外观类提供一个简单的接口简化客户端与子系统的交互。子系统类实现具体的业务逻辑但它们不暴露给客户端客户端通过外观类与它们交互。客户端只与外观类交互通过外观类简化对系统的操作。 3.外观模式的工作流程 客户端通过外观类提供的简化接口发出请求。外观类负责协调并调用一个或多个子系统类来完成请求。子系统类执行具体的操作并将结果返回给外观类。外观类将子系统操作的结果返回给客户端。 五、外观模式的优缺点 1.优点 简化客户端代码客户端只需要通过外观类提供的简单接口来控制复杂的子系统而不需要直接操作各个子系统极大简化了客户端的调用。解耦外观模式通过提供一个统一的接口减少了客户端与子系统之间的依赖使得客户端与子系统的耦合度降低。易于扩展如果将来要添加新的设备如投影仪、蓝光播放器等只需要对外观类进行扩展而不需要修改客户端的代码符合开放封闭原则。 2.缺点 外观类可能变得臃肿如果有大量的子系统外观类可能会变得非常庞大承担过多的职责变成“胖外观类”这时可以考虑使用多个外观类来分担责任。隐藏了子系统功能外观模式的简化接口虽然易于使用但也隐藏了子系统的一些功能。如果客户端需要更多的控制或者定制化操作可能就无法通过外观类来实现必须直接与子系统交互。 六、总结 外观模式是一种非常实用的设计模式适用于需要简化复杂系统接口的场景。它通过为复杂的子系统提供一个统一的、高层次的接口使得客户端能够通过简单的调用来完成复杂的任务。使用外观模式我们可以提高系统的可维护性、可扩展性并且让客户端代码更加简洁易懂。 通过本文的家庭影院系统示例我们可以看到外观模式如何将多个设备的控制操作集中到一个外观类中减少了客户端的操作复杂度。如果你在实际项目中遇到类似的情况可以考虑使用外观模式来简化系统的操作接口。  希望这篇文章能帮助你理解外观模式的应用和实现如果你有任何问题或者希望进一步探讨其他设计模式欢迎随时联系我
http://www.dnsts.com.cn/news/210177.html

相关文章:

  • 推广产品网站建设wordpress注册文件下载
  • 深圳网站建设认准乐云践新网站如何自动手机版
  • 武清区网站开发邢台网站建设服务商
  • 西安哪家公司做网站好主题网络图怎么设计
  • 教育门户网站模板规划网站站点需要遵循哪些原则
  • 建设一个房产网站赚钱吗wordpress抖音插件
  • 站长之家端口扫描wordpress网页加入音乐页面
  • 东道网站建设seo网站排名优化
  • 网站直播间 是怎么做的简单网页制作模板图片
  • 企业网站建设可以分为几个层次怎样做访问外国网站才能不卡
  • 网站做百度口碑西宁建设网站多少钱
  • 互联网网站怎么做营销型网站要多少钱
  • wordpress网站密码百度快照下载
  • 自己做网站广告法宁波网站改版
  • 宁波网站优化技术word无法发布文章到wordpress
  • 好兄弟给个网站可以做推广东西的网站
  • 网站空间 按流量计费吉林建设公司网站
  • 做网站必须有主机吗软文素材
  • 营销网站开发渠道有哪些南京市玄武区建设局网站
  • 音乐网站整站程序咸阳鑫承网站建设
  • 晋城网站建设公司排名淄博汽车网站建设
  • 如何查看网站开发公司魅影视频
  • 网站建设内容方法从事网页设计工资高吗
  • 一个网站的建设需要什么东西北京工业产品设计公司
  • 网站侧边 跟随 样式接网站建设外包的工作
  • 新网站怎么做网络推广广告网站建设及推广
  • 加强学院网站的建设与管理程序开发环境
  • 自己做网站类型国内网站建设联系电话
  • 江门网站建设方案开发自己编程做网站
  • 用asp做网站的流程杭州的互联网公司有哪些