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

html5 个人网站模板wordpress的title

html5 个人网站模板,wordpress的title,广州培训网站建设,网站建设 报价定义 外观模式#xff08;Facade Pattern#xff09; 是一种结构型设计模式#xff0c;它通过为复杂的子系统提供一个统一的接口#xff0c;使得子系统的使用更加简化。外观模式通常隐藏了复杂的内部子系统#xff0c;使得客户端可以通过一个简单的接口与这些子系统进行交…定义 外观模式Facade Pattern 是一种结构型设计模式它通过为复杂的子系统提供一个统一的接口使得子系统的使用更加简化。外观模式通常隐藏了复杂的内部子系统使得客户端可以通过一个简单的接口与这些子系统进行交互。 核心思想 简化接口通过提供一个简单的接口来封装复杂的子系统。 解耦客户端不需要了解子系统的内部实现只需与外观类交互降低了系统的复杂性。 适用场景 外观模式适用于以下场景 简化复杂系统当系统中有多个复杂的子系统时使用外观模式提供一个简单的接口以减少客户端与子系统的交互复杂度。解耦客户端与子系统客户端无需知道子系统内部的工作原理只需与外观类交互即可。多层次接口当系统提供了多个接口并且这些接口之间有复杂的交互时使用外观模式可以通过统一接口简化调用。 常见应用场景 音响系统控制将复杂的音响系统如播放、调整音量、切换输入源等通过外观模式提供一个简单的接口进行控制。家庭自动化系统例如控制家庭的智能设备照明、安防、温控等可以通过一个统一的控制接口进行操作。 类设计 外观模式的设计通常包括以下角色 1.Facade外观类为客户端提供简化的接口它与子系统进行交互。 2.Subsystem子系统复杂的子系统提供实际的功能实现。 3.Client客户端通过外观类与子系统交互。 代码实现解析 假设我们有一个家庭影院系统系统包括音响、投影仪、DVD 播放器和灯光等多个组件。我们希望通过外观模式来简化控制这些组件的操作。 子系统类设计 #include iostream #include string using namespace std;class Amplifier { public:void on() {cout Amplifier on endl;}void off() {cout Amplifier off endl;}void setVolume(int level) {cout Setting volume to level endl;} };class Projector { public:void on() {cout Projector on endl;}void off() {cout Projector off endl;}void wideScreenMode() {cout Projector in widescreen mode endl;} };class DVDPlayer { public:void on() {cout DVD Player on endl;}void off() {cout DVD Player off endl;}void play(string movie) {cout Playing movie: movie endl;}void stop() {cout Stopping movie endl;} };class Lights { public:void dim(int level) {cout Dimming lights to level % endl;}void on() {cout Lights on endl;} }; 外观类设计: class HomeTheaterFacade { private:Amplifier* amplifier;Projector* projector;DVDPlayer* dvdPlayer;Lights* lights;public:HomeTheaterFacade(Amplifier* amp, Projector* proj, DVDPlayer* dvd, Lights* light) :amplifier(amp), projector(proj), dvdPlayer(dvd), lights(light) {}void watchMovie(string movie) {cout Get ready to watch a movie... endl;lights-dim(10);projector-on();projector-wideScreenMode();amplifier-on();amplifier-setVolume(5);dvdPlayer-on();dvdPlayer-play(movie);}void endMovie() {cout Shutting down the movie theater... endl;lights-on();projector-off();amplifier-off();dvdPlayer-stop();dvdPlayer-off();} }; 客户端调用: int main() {Amplifier* amplifier new Amplifier();Projector* projector new Projector();DVDPlayer* dvdPlayer new DVDPlayer();Lights* lights new Lights();// 创建外观对象简化子系统接口HomeTheaterFacade* homeTheater new HomeTheaterFacade(amplifier, projector, dvdPlayer, lights);// 客户端通过外观类调用子系统的功能homeTheater-watchMovie(Inception);homeTheater-endMovie();delete amplifier;delete projector;delete dvdPlayer;delete lights;delete homeTheater;return 0; } 输出如下: Get ready to watch a movie... Dimming lights to 10% Projector on Projector in widescreen mode Amplifier on Setting volume to 5 DVD Player on Playing movie: Inception Shutting down the movie theater... Lights on Projector off Amplifier off Stopping movie DVD Player off 可以看到客户端通过 HomeTheaterFacade 只调用了 watchMovie 和 endMovie 两个方法就完成了多个子系统的操作。HomeTheaterFacade 为客户端提供了一个简单的接口屏蔽了子系统的复杂性。 类设计分析 1.子系统类这些类Amplifier、Projector、DVDPlayer、Lights是独立的子系统负责实现实际的功能。 每个子系统类都有复杂的内部实现客户端不需要直接与这些类交互。 2.外观类HomeTheaterFacade HomeTheaterFacade 类封装了所有子系统的操作它通过提供简化的 watchMovie 和 endMovie 方法来控制整个家庭影院系统。外观类与所有子系统类交互客户端只需要调用外观类的方法而无需关心如何具体操作每个子系统。 3.客户端客户端代码通过 HomeTheaterFacade 与所有子系统进行交互而无需了解子系统的具体实现。 总结 Facade 模式的优点 简化接口将复杂子系统的接口进行封装提供统一的简单接口。解耦客户端不再与子系统的多个组件交互只与外观类交互减少了系统之间的耦合。提高可维护性外观模式通过将子系统的复杂性隐藏在外观类中使得系统的维护更加容易 Facade 模式的缺点 增加了外观类的复杂性随着子系统的增多外观类可能变得较为庞大维护时需要确保其接口不会被滥用。可能导致过度设计如果系统本身比较简单使用外观模式可能是过度设计增加了不必要的复杂度。 Facade 模式的适用场景 简化复杂的子系统接口当系统有多个复杂的子系统时可以使用外观模式来提供统一的简单接口。降低子系统间的耦合当不同子系统之间的依赖性较强时外观模式能有效隔离这些子系统减少系统间的相互依赖。提供一个高层接口当多个子系统的调用顺序复杂时外观模式能提供一个简化的接口。 总结: 外观模式通过为复杂的系统提供一个简单的接口简化了系统的使用和管理。客户端无需了解系统内部的复杂实现只需要与外观类交互外观类负责协调多个子系统的操作。外观模式通常用于简化客户端与子系统之间的交互并提高系统的可维护性。
http://www.w-s-a.com/news/630447/

相关文章:

  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo
  • 个人公益网站怎么制作wordpress flat theme
  • 做营销型网站的公司篇高端网站愿建设
  • 五莲网站建设维护推广凡科做网站的方法
  • 山东省住房建设厅网站首页网站文章更新怎么通知搜索引擎
  • 商务网站的可行性分析包括大流量网站 优化
  • 推广网站有效的方法网站数据统计
  • 自建视频网站WordPress数据库添加管理员
  • 新民电商网站建设价格咨询网站建设高效解决之道
  • 做网站需要哪些步骤网站设计介绍
  • 物流网站制作目的国外中文网站排行榜单