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

app网站模板下载珠海哪里做网站的

app网站模板下载,珠海哪里做网站的,湘潭网页定制,百度谷歌seo优化概述 外观模式(Facade Pattern)又名门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。该模式…

概述

         外观模式(Facade Pattern)又名门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降 低应用程序的复杂度,提高了程序的可维护性。

外观(Facade)模式包含以下主要角色:

  1. 子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。
  2. 外观(Facade)角色:为多个子系统对外提供一个共同的接口。

案例

随着科技的发展,生活中很多东西都与科技融合,例如我们房间中的一些智能家居,可以通过感应或是手机远程遥控来进行控制,下面我们就距离模拟一个app进行控制房间的热水器和室灯

接口

首先创建一个外观接口,定义了开与关两个功能

public interface IShape
{public void on();public void off();
}

创建实现接口的实体类

然后分别创建热水器室灯来实现此接口

热水器

public class WaterHeater:IShape
{public void on(){Console.WriteLine("开启热水器");}public void off(){Console.WriteLine("关闭热水器");}
}

室灯

public class Light:IShape
{public void on(){Console.WriteLine("开启灯光");}public void off(){Console.WriteLine("关闭灯光");}
}

外观类

创建一个控制器app,在此类中有一个button方法,接收一个字符串参数message。根据message的值,它会调用on或off方法,分别开启或关闭灯和热水器。如果message既不是"一键开启"也不是"一键关闭",那么它将在控制台打印一个未识别出命令。

public class IntelligentApp
{private Light _light = new();private WaterHeater _waterHeater = new();public void Button(String message){if (message == ("一键开启")){on();}else if (message == ("一键关闭")){off();}else{Console.WriteLine("未识别出命令");}}void on(){_light.on();_waterHeater.on();}void off(){_light.off();_waterHeater.off();}
}

测试

 

总结

优点:

  1. 简化接口:外观模式提供了一个统一的接口,用来访问子系统中的一群接口。这个接口使得子系统更容易使用。
  2. 解耦:外观模式可以解耦子系统与客户端,使得子系统的变化不会影响到客户端。
  3. 提高安全性:通过外观类,可以对子系统的访问进行更严格的控制,防止对子系统的误用。
  4. 提高了灵活性和可维护性:通过将复杂的子系统逻辑封装在外观类中,可以降低代码的复杂度,提高了代码的灵活性和可维护性。

缺点:

  1. 不符合开闭原则:如果需要增加新的子系统或者移除子系统,可能需要修改外观类,这就违反了开闭原则。
  2. 增加了系统的复杂性:虽然外观模式可以简化客户端的使用,但是在系统内部,可能会增加系统的复杂性。
  3. 有可能产生过度封装:如果外观类封装的功能过多,那么可能会导致外观类变得过于庞大,难以维护和测试。

使用场景:

对分层结构系统构建时,使用外观模式定义子系统中每层的入口点可以简化子系统之间的依赖关 系。 当一个复杂系统的子系统很多时,外观模式可以为系统设计一个简单的接口供外界访问。 当客户端与多个子系统之间存在很大的联系时,引入外观模式可将它们分离,从而提高子系统的独 立性和可移植性。

 

http://www.yayakq.cn/news/993419/

相关文章:

  • 网页设计模板网站推荐衡水安徽学校网站建设
  • 社区教育网站建设项目计划书山西建设厅网站
  • 网站建设搭建是什么意思站长工具中文
  • 郑州做网站_郑州免费建站湖南常德桃源县
  • 新增接入 新增网站申请网站做自己的产品
  • 大学两学一做网站做电商的几个网站
  • 宠物网站设计模块做博客网站什么空间好
  • 济南地区做企业网站的公司中天建设集团有限公司官网
  • 做淘宝类网站网站建设方案书人员资金安排
  • 新密市城乡建设局网站长春最新发布信息
  • 一家专门做特卖的网站wordpress根据用户显示文章
  • 射阳网站建设云南网站建设维修公司
  • 企业网站手机版源码下载建设网站的具体步骤
  • 网页及网站建设用什么软件贾汪网站建设
  • 免费舆情网站下载大全最新版网站建设服务面试题
  • 网站建设 协议书潍坊网站建设求职简历
  • 建设互联网地方垂直网站网络装修公司
  • 学习电子商务网站建设与管理的收获6建设工程设计招标信息网站.
  • 关于做ppt的网站有哪些茂名建设企业网站
  • 网站设计建设价格wordpress淘宝客主题带条件筛选
  • 建站教程wp微博问答网站开发
  • 暖色网站模板微网站模板 php
  • 东莞企业网站建立报价建站公司 网络服务
  • 婚庆网站设计wordpress上传ftp密码
  • 移动端网站建设方案京东的网站建设
  • 神农架网站设计asp网站服务建设论文
  • 四川住房和城乡建设网站网站改了title 删除百度就的收录
  • 宁波专业网站推广平台便宜软件开发项目实施方案
  • 东莞网站建设公司 h5在线做投资网站
  • 做二手房产网站多少钱南京市高淳区城乡建设局网站