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

科技感网站江苏智能网站建设流程

科技感网站,江苏智能网站建设流程,重庆网站优化排名,学校网站建设工作目标设计模式浅析(八) 外观模式 日常叨逼叨 java设计模式浅析#xff0c;如果觉得对你有帮助#xff0c;记得一键三连#xff0c;谢谢各位观众老爷#x1f601;#x1f601; 外观模式 概念 外观模式#xff08;Facade Pattern#xff09;是一种设计模式#xff0c;它为…设计模式浅析(八) ·外观模式 日常叨逼叨 java设计模式浅析如果觉得对你有帮助记得一键三连谢谢各位观众老爷 外观模式 概念 外观模式Facade Pattern是一种设计模式它为子系统中的一组接口提供一个统一的高层接口使得子系统更加容易使用。这种设计模式的主要目的是降低系统的复杂性简化客户端与子系统之间的交互。 外观Facade模式是“迪米特法则”的典型应用。 迪米特法则又叫作最少知识原则The Least Knowledge Principle一个类对于其他类知道的越少越好就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信不和陌生人说话。英文简写为: LOD。 组成 外观类Facade这是外观模式的核心。外观类为客户端提供了一个简洁的接口用于访问子系统中的功能。外观类内部通常包含了对子系统多个组件的引用并且提供了高层次的方法来调用这些组件。客户端不需要直接与子系统组件交互而是通过外观类来间接访问它们。子系统组件Subsystem Components这些是子系统中实际执行操作的类。它们实现了具体的功能但通常对于客户端来说是不可见的。外观类负责协调这些组件的工作并将结果呈现给客户端。客户端Client客户端是使用外观模式的代码部分。它只需要与外观类交互而不需要了解子系统的具体实现细节。客户端通过调用外观类提供的方法可以间接地使用子系统提供的功能。 案例 我就以自己家里的一些家电为例子比如我家有电灯空调电视这三种家电然后呢他们都有自己独立的开关我如果我想要让它们都处于工作状态我得一件一件地去打开他们的开关但是呢我个人比较懒想着能不能接入一个小雷同学让它去负责各个家电我只需要操作小雷同学就可以 说干就干首先是我家里的各个电器 //空调 public class AirCondition {public void on() {System.out.println(打开了空调....);}public void off() {System.out.println(关闭了空调....);} } //电视机 public class TV {public void on() {System.out.println(打开了电视....);}public void off() {System.out.println(关闭了电视....);} } //灯 public class Light {public void on() {System.out.println(打开了灯....);}public void off() {System.out.println(关闭了灯....);} }然后呢我接入一个小雷同学 //智能音箱 public class SmartAppliancesFacade {private Light light;private TV tv;private AirCondition airCondition;//other household appliancepublic SmartAppliancesFacade() {light new Light();tv new TV();airCondition new AirCondition();}public void say(String message) {if (message.contains(开灯)) {onLamp();} else if (message.contains(关灯)) {offLamp();} else if (message.contains(开电视)) {onTV();} else if (message.contains(关电视)) {offTV();} else if (message.contains(开空调)) {onAirCondition();} else if (message.contains(关空调)) {offAirCondition();} else if (message.contains(打开家电)) {onLamp();onTV();onAirCondition();//on other household appliance} else if (message.contains(关闭家电)) {offLamp();offTV();offAirCondition();//off other household appliance} else {System.out.println(我还听不懂你说的);}}private void onLamp() {light.on();}private void offLamp() {light.off();}private void onTV() {tv.on();}private void offTV() {tv.off();}private void onAirCondition() {airCondition.on();}private void offAirCondition() {airCondition.off();} }而对于我来说我只需要知道小雷同学而不需要知道各个家电。 public class Client {public static void main(String[] args) {//创建外观对象SmartAppliancesFacade facade new SmartAppliancesFacade();//客户端直接与外观对象进行交互facade.say(小雷同学请打开家电); // facade.say(关闭家电);} }执行结果 打开了灯… 打开了电视… 打开了空调… 这样对于客户端来说可以通过一个智能音箱控制全部而不用管其他的具体实现只要知道这个接口即可以了。 但是在一些具体的示例中外观模式的使用可能有所差异望各位看官老爷们斟酌使用。 优缺点 外观模式的主要优点包括 简化了客户端的使用客户端只需要与外观类交互而不需要了解子系统的复杂性。降低了系统的耦合度外观类将客户端与子系统解耦减少了它们之间的直接依赖。提供了统一的接口外观类为子系统提供了一个统一的接口使得子系统更加容易集成和扩展。 然而外观模式也有一些潜在的缺点比如 过度集中化如果外观类承担了太多的责任它可能会变得过于复杂和难以维护。不适合所有场景对于某些系统来说外观模式可能并不是最合适的设计选择。如果子系统非常简单或者客户端需要直接访问子系统组件那么外观模式可能并不适用。 代码相关代码可以参考 代码仓库 ps本文原创转载请注明出处
http://www.pierceye.com/news/819537/

相关文章:

  • 免费社区建站系统seo是指什么
  • 网站建设实训的认识小企业网站建设哪里做得好
  • 无锡seo网站排名优化牟平建设企业网站
  • 网络营销好找工作吗成都seo优化公司排名
  • 网站换关键词山西网站备案
  • 网站微信建设运维经验深圳罗湖企业网站
  • 国外设计类网站泰安网网站建设
  • 做暖暖小视频网站手机 dns 国外网站
  • 子网站建设工作网站 首页布局 seo
  • 网站域名是什么传奇辅助网站怎么做
  • 在那个上面做网站都能搜到新乡网站建设设计
  • 网站编辑 seo是什么 百度知道本地网站搭建流程
  • 用凡科做网站好吗搜索自媒体平台
  • 学设计的网站有哪些内容免费设计图片软件
  • 柳州建站公司404错误直接转向到网站首页
  • 字画网站建设iis怎么查看网站的域名
  • 公司门户网站建设特点新增专业建设规划
  • 备案号怎么放置到网站长春如何建立一个平台网站
  • 企业网站的一般要素包括厂房设计
  • 郑州做网站 汉狮网络深圳市中心是哪个区
  • jsp做的婚恋网站做死活题网站
  • 帮做网站的公司荥阳网站优化公司
  • 网页设计心得体会正文合肥网站推广优化公司
  • 邯郸菜鸟网站建设网站搭建费用价格表
  • 网站优化3个关键词和10个关键词的区别品牌推广方式有哪些
  • 建立网站需要多少钱一个二手站网站怎做
  • 瑞丽住建局网站科技新闻最新消息10条
  • 可以上传网站的免费空间网站注册都需要什么
  • wap网站开发重庆永川网站建设公司
  • 网站历史记录怎么恢复seo网站优化软件