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

网站怎样做快照中文搜索引擎排行榜

网站怎样做快照,中文搜索引擎排行榜,大英哪里有做网站的,加强新闻网站建设建议弈之为术,在人自悟 一,定义 外观模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。提供一个高层次的接口,使得子系统更易于使用。 外观模式在开发中的使用频率是非常高的,尤其是在第三方的SDK里面&#xff0…

弈之为术,在人自悟

一,定义

外观模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。提供一个高层次的接口,使得子系统更易于使用。

外观模式在开发中的使用频率是非常高的,尤其是在第三方的SDK里面,大部分都会使用外观模式。它通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能降低用户的使用成本,也对用户屏蔽了很多实现细节。在我们的开发过程中,外观模式也是我们封装API的常用手段,例如网络模块,图片加载等,可能你已经在开发中使用过无数次外观模式,只是没有在理论层面认识它。

二,使用场景

1,为一个复杂子系统提供一个简单接口。子系统往往因为不断演化而变得越来越复杂,甚至可能被替换。大多数模式使用时,都会产生更多更小的类,在这使子系统更具可重用性的同时也更容易对子系统进行定制,修改,这种易变形使得隐藏子系统的具体实现变得尤为重要。外观模式可以提供一个简单统一接口,对外隐藏子系统的具体实现,隔离变化。

2,当你需要构建一个层次结构的子系统时,使用外观模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让他们仅通过外观模式的接口进行通信,从而简化了他们之间的依赖关系。

三,角色介绍

1,Facade:系统对外的统一接口,系统内部系统的工作。

2,SystemA,SystemB.......  :子系统接口

外观模式接口比较简单,就是通过一个统一的接口对外提供服务,使得外部程序只通过一个类就可以实现系统内部的多种功能,而这些实现功能的内部子系统之间可能也有交互,或者说完成一个功能需要几个子系统之间进行协作,如果没有封装,那么用户就需要操作几个子系统的交互逻辑,容易出现错误。而通过外观类来对外屏蔽这些复杂的交互,降低用户的使用成本。

四,使用案例

在英雄联盟游戏中,每个英雄都有各自的技能连招,比如盖伦的连招wqer,火男的连招weqr,光辉女郎的连招qwer等等,在市面上有一种宏键盘,可以定义一个按键一键释放连招。

在这里,我们假设q,w,e,r分别为一个子系统,他们内部有释放各自技能的方法。

宏键盘为对外的统一的类,定义F1键为火男的连招,F2键为盖伦的连招,F3键为光辉女郎的连招

首先,我们创建子系统的接口Q,W,E,R:

public interface Q {void useQ();
}
public interface W {void useW();
}
public interface E {void useE();
}
public interface R {void useR();
}

然后创建他们的具体实现类:

public class QImp implements Q{@Overridepublic void useQ() {System.out.println("使用了Q技能");}
}
public class WImp implements W{@Overridepublic void useW() {System.out.println("使用了W技能");}
}
public class EImp implements E{@Overridepublic void useE() {System.out.println("使用了E技能");}
}
public class RImp implements R{@Overridepublic void useR() {System.out.println("使用了R技能");}
}

最后,创建我们的对外的统一的类Facade宏键盘,它里面持有了Q,W,E,R的具体实现类的对象,对外提供了F1,F2,F3三个方法:

public class KBFacade {private QImp qImp =new QImp();private WImp wImp =new WImp();private EImp eImp =new EImp();private RImp rImp =new RImp();/*** 火男的连招* */public void F1(){System.out.println("使用火男的连招------");wImp.useW();eImp.useE();qImp.useQ();rImp.useR();System.out.println("火男的连招使用结束------");}/*** 盖伦的连招* */public void F2(){System.out.println("使用盖伦的连招------");wImp.useW();qImp.useQ();eImp.useE();rImp.useR();System.out.println("盖伦的连招使用结束------");}/*** 光辉的连招* */public void F3(){System.out.println("使用光辉的连招------");qImp.useQ();wImp.useW();eImp.useE();rImp.useR();System.out.println("光辉的连招使用结束------");}}

最后的使用:

KBFacade kbFacade =new KBFacade();
kbFacade.F1();
kbFacade.F2();
kbFacade.F3();

输出:

这样,使用的用户不需要知道火男的连招具体是什么,他只需要使用F1方法,就可以使用一系列的连招。

从上述代码中可以看到,外观模式就是统一接口封装。将子系统的逻辑,交互隐藏起来,为用户提供一个高层次的接口,使得系统更加易用,同时也对外隐藏了具体的实现,这样即使具体的子系统发生了变化,用户也不会感知到,因为用户使用的是Facade高层接口,内部的变化对于用户来说并不可见。这样一来就将变化隔离开来,使得系统也更为灵活。

五,总结

外观模式是一个高频率使用的设计模式,它的精髓就在于封装二字。通过一个高层次结构为用户提供统一的API入口,使得用户通过一个类型就基本能够操作整个系统,这样减少了用户的使用成本,也能够提升系统的灵活性。

优点:

1,对客户程序隐藏子系统细节,因而减少了客户对于子系统的耦合,能够拥抱变化。

2,外观类对子系统的接口封装,使得系统更易于使用。

缺点:

1,外观类接口膨胀。由于子系统的接口都有外观类统一对外暴露,使得外观类的API接口较多,在一定程度上增加了用户使用成本。

2,外观类没有遵循开闭原则,当业务出现变更时,可能需要直接修改外观类。

http://www.hkea.cn/news/983738/

相关文章:

  • 网站栏目怎么做单独的搜索框云南疫情最新消息
  • 独立商城b2c电商网站开发合肥百度seo代理
  • 做购物网站需不需要交税费郑州网站托管
  • 是不是做网站就能赚钱谷歌seo关键词优化
  • 萝岗门户网站建设今日重大新闻头条财经
  • 个人相册网站模板怎么把网站排名排上去
  • 建设外贸网站案例统计站老站长推荐草莓
  • 1688网站的特点全网营销系统
  • 西安做网站企业网址怎么申请
  • 专业网站建设品牌百度指数里的资讯指数是什么
  • 做网站规避什么网站制作
  • 网站开发工作方案2022拉人头最暴利的app
  • 网站建设好还是阿里巴巴好磁力猫torrent kitty
  • wordpress跨域访问前端优化网站
  • 住房和城乡建设部网站买卖合同北京中文seo
  • WordPress自己安装了插件深圳seo推广外包
  • 建立网站舆情分析报告范文
  • wordpress 空格 插件班级优化大师app
  • 成都有实力的网站建设网络培训心得
  • 中企高呈建设网站在百度怎么创建自己的网站
  • 女的和女的做那个视频网站怎么在网上做网络营销
  • 网站开发需要什么软件百度怎样发布作品
  • 专门做宠物食品的网站市场调研怎么做
  • 兰州网站建设q.479185700棒成年s8视频加密线路
  • 付费网站推广seo关键词排名优化怎么收费
  • 网站由那些组成google网页搜索
  • 对一个网站做性能测试谷歌paypal官网入口
  • 北京住房投资建设中心网站首页快速排名怎么做
  • 中国网站制作 第一个佛山网站优化
  • thinkphp做的教育网站微商引流推广