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

模块化网站建设一般多少钱品牌策划的五个步骤

模块化网站建设一般多少钱,品牌策划的五个步骤,什邡门户网站,哪些企业需要做网站目录 一、 啥是外观模式?二、 为什么要用外观模式?三、 外观模式的实现方式四、 外观模式的优缺点五、 外观模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…

在这里插入图片描述

目录

    • 一、 啥是外观模式?
    • 二、 为什么要用外观模式?
    • 三、 外观模式的实现方式
    • 四、 外观模式的优缺点
    • 五、 外观模式的应用场景
    • 六、 总结

🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗!
🌟了解桥接模式请看: (九)趣学设计模式 之 桥接模式!

这篇文章带你详细认识一下设计模式中的外观模式

一、 啥是外观模式?

想象一下,你想做一道复杂的菜 🍲 (比如:佛跳墙),你需要准备各种食材 🥕🍄🍖、处理食材 🔪、烹饪食材 🔥等等一系列操作。 如果每次做菜都要手动完成这些步骤,是不是很麻烦 😫? 这时候你可以使用一个“一键烹饪包” 📦,只需要按照说明书操作,就可以自动完成所有步骤!

外观模式,就是为子系统中的一组接口提供一个统一的接口! 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 ➕。

简单来说,就是提供一个“傻瓜式”的操作界面,隐藏复杂的内部逻辑! 📦

  • 你想简化复杂系统的使用: 就像你想用一个“一键烹饪包”做出复杂的菜 🍲!
  • 你想降低子系统之间的耦合度: 就像你不想让用户直接依赖于各种食材和烹饪步骤 🥕🍄🍖🔪🔥!
  • 你想为不同的用户提供不同的接口: 就像你想为新手提供简单的烹饪包,为厨师提供更详细的食材和烹饪方法 👨‍🍳!

二、 为什么要用外观模式?

用外观模式,好处多多 👍:

  • 简化接口: 为复杂系统提供一个简单的接口 📦!
  • 降低耦合度: 减少客户端与子系统之间的依赖 🔗!
  • 提高灵活性: 可以方便地修改子系统的内部实现,而不会影响客户端 🤸!
  • 提高安全性: 可以控制客户端对子系统的访问权限 🔒!

三、 外观模式的实现方式

外观模式主要包含以下几个角色:

  • Facade(外观类): 为子系统中的一组接口提供一个统一的接口。 📦 (比如:“一键烹饪包”)
  • SubSystem(子系统): 实现子系统的功能,处理Facade对象指派的任务。 🥕🍄🍖🔪🔥 (比如:食材准备、食材处理、烹饪)

代码示例:

// 子系统:食材准备
public class IngredientPreparation {public void prepareVegetables() {System.out.println("准备蔬菜");}public void prepareMeat() {System.out.println("准备肉类");}
}// 子系统:食材处理
public class IngredientProcessing {public void chopVegetables() {System.out.println("切菜");}public void marinateMeat() {System.out.println("腌制肉类");}
}// 子系统:烹饪
public class Cooking {public void stirFry() {System.out.println("翻炒");}public void simmer() {System.out.println("炖煮");}
}// 外观类:“一键烹饪包”
public class OneClickCookingPackage {private IngredientPreparation preparation;private IngredientProcessing processing;private Cooking cooking;public OneClickCookingPackage() {this.preparation = new IngredientPreparation();this.processing = new IngredientProcessing();this.cooking = new Cooking();}public void cookDish() {System.out.println("开始烹饪...");preparation.prepareVegetables(); // 准备蔬菜preparation.prepareMeat(); // 准备肉类processing.chopVegetables(); // 切菜processing.marinateMeat(); // 腌制肉类cooking.stirFry(); // 翻炒cooking.simmer(); // 炖煮System.out.println("烹饪完成!");}
}// 客户端
public class Client {public static void main(String[] args) {OneClickCookingPackage cookingPackage = new OneClickCookingPackage(); // 创建“一键烹饪包”对象cookingPackage.cookDish(); // 开始烹饪}
}

分析:

  • IngredientPreparation, IngredientProcessing, Cooking 是子系统,分别实现了食材准备、食材处理和烹饪的功能。
  • OneClickCookingPackage 是外观类,组合了子系统对象,并提供了 cookDish() 方法,简化了烹饪的操作。

输出结果:

开始烹饪...
准备蔬菜
准备肉类
切菜
腌制肉类
翻炒
炖煮
烹饪完成!

四、 外观模式的优缺点

优点:

  • 简化接口 📦!
  • 降低耦合度 🔗!
  • 提高灵活性 🤸!
  • 提高安全性 🔒!

缺点:

  • 不能很好地限制客户使用子系统类,如果客户知道子系统类,还是可以直接使用 😫!
  • 不符合开闭原则,如果需要增加新的子系统,需要修改外观类 😫!

五、 外观模式的应用场景

  • 当你要为一个复杂子系统提供一个简单接口时: 就像“一键烹饪包” 🍲!
  • 当客户程序与多个子系统之间存在很大的依赖性时: 就像客户端需要直接操作各种食材和烹饪步骤 🥕🍄🍖🔪🔥!
  • 当你需要构建一个层次结构的子系统时,使用外观模式定义子系统中每层的入口点: 就像为不同的用户提供不同的烹饪方法 👨‍🍳!
  • 编译器: 编译器可以将复杂的编译过程封装起来,对外提供一个简单的编译接口。

六、 总结

  • 外观模式就像提供一个“傻瓜式”的操作界面,隐藏复杂的内部逻辑! 📦
  • 主要包含外观类和子系统两个角色! 🎭
  • 优点是简化接口、降低耦合度、提高灵活性、提高安全性! 👍
  • 缺点是不能很好地限制客户使用子系统类、不符合开闭原则! 👎
  • 适用于需要简化复杂系统的使用,或者需要降低子系统之间耦合度的场景! 🎯

希望这个例子能让你更容易理解外观模式! 💯 祝你学习愉快! 😄
看完请看:(十 一)趣学设计模式 之 组合模式!


文章转载自:

http://H96OH8sm.fyskq.cn
http://L40TrtBK.fyskq.cn
http://im1yEkA4.fyskq.cn
http://LavZS0vX.fyskq.cn
http://ufVRT9nk.fyskq.cn
http://nHDnPTqr.fyskq.cn
http://eeTk3syM.fyskq.cn
http://qZ1ka46b.fyskq.cn
http://sgLjnf34.fyskq.cn
http://Jzl8omOj.fyskq.cn
http://8HoJ5uXL.fyskq.cn
http://lprTsNtF.fyskq.cn
http://xXFro2zY.fyskq.cn
http://PPomRutu.fyskq.cn
http://U7vrw51t.fyskq.cn
http://HUff99CC.fyskq.cn
http://8lXX3w3U.fyskq.cn
http://yPMZH62V.fyskq.cn
http://oDTJnXsU.fyskq.cn
http://V7RuTPqC.fyskq.cn
http://LbUyH0sb.fyskq.cn
http://i0Gne8BY.fyskq.cn
http://ae4uuVFe.fyskq.cn
http://3ml2WFIM.fyskq.cn
http://Q9gU2YFN.fyskq.cn
http://CerS6smV.fyskq.cn
http://TOLRN3Df.fyskq.cn
http://yzx5ZOCh.fyskq.cn
http://hQUgZzZJ.fyskq.cn
http://QeAEbIrF.fyskq.cn
http://www.dtcms.com/wzjs/696990.html

相关文章:

  • 最专业的网站开发公司哪家最专业网页设计公司招聘
  • 犀牛云做网站如何虚拟主机技术
  • 金华建设网站公司音乐网站设计素材
  • 手机网站开发 手机模拟器erp系统的优点
  • 衡阳网站建设衡阳千度网络百度广告安装入口
  • 郑州市网站建设营销型网站建设排名
  • 网站 白名单wordpress判断首页选择不同模板
  • 网站建设步奏建设体育课程基地网站
  • 海南省城乡住房建设厅网站首页网站做视频的软件叫什么
  • 做网站的流程 优帮云wordpress不登录看不到文章
  • 杭州seo网站优化公司龙华线上推广
  • 申请建设银行官方网站上海优化网站关键词
  • 推荐优秀的企业网站设计清河做网站哪家好
  • 个人网站开发协议东莞seo黑帽培训
  • 可以做英语题的网站怎么样做个网站
  • 英语网站建设公司怎么做交易猫假网站
  • 凌云县 城市建设 网站wordpress这个博客
  • 付网站首期合同款怎么做分录移动网站设计与制作
  • 做动图的网站去掉wordpress顶部
  • 网页制作工具按其制作方式可分为台州seo优化公司
  • ui网站界面设计模板注册网站地址
  • 制作一个网站需要哪些步骤珠宝行网站建设方案
  • 263云通信官方网站深圳网站建设公司业务招聘
  • wordpress 置顶调用wordpress百度seo插件
  • 绵阳城乡住房建设厅网站wordpress网站关键字
  • 宜宾建设网站聊城大型门户网站建设
  • 设计购物网站广州冼村很有钱吗
  • 电子商务网站建设选择女教师网课入侵录屏冫
  • 网站用的服务器怎么手动更新wordpress
  • 网站设计的研究方案管理系统软件