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

淮南电商网站建设360搜索引擎优化

淮南电商网站建设,360搜索引擎优化,宿州物流网站建设,西安网站托管排名1. W1 是什么#xff0c;什么是桥接模式#xff1f; 桥接模式是一种结构性模式。 桥接模式旨在将抽象与实现解耦#xff0c;使它们可以独立地变化。可以这么理解#xff0c;面向对象编程是单继承多实现的#xff0c;如果我们有一个可扩展类#xff0c;和多个相关的可扩展…1. W1 是什么什么是桥接模式 桥接模式是一种结构性模式。 桥接模式旨在将抽象与实现解耦使它们可以独立地变化。可以这么理解面向对象编程是单继承多实现的如果我们有一个可扩展类和多个相关的可扩展维度的话就可以创建一个抽象类来像桥梁一样连接这些个维度。 因此这里的抽象可以理解为有一个抽象类实现就代表多个接口。而桥接模式就是在这个抽象类里放多个接口结构不就清晰明了了哇。 2. W2 为什么为什么需要使用桥接模式能给我们编码带来什么好处 解耦抽象与实现桥接模式有助于将抽象部分与实现部分分离。通过将两者之间的连接通过桥接对象进行可以使它们可以独立地变化。这种解耦使得系统更加灵活更容易扩展和维护。 提高可扩展性通过桥接模式我们可以轻松添加新的抽象部分和实现部分而不需要修改现有的代码。例如在下面的怪物例子中我们可以添加新的攻击方式或属性类而不会影响现有的攻击方式和属性的组合。这种可扩展性使得系统更具弹性能够适应变化的需求。 支持组合复用桥接模式使得可以通过组合不同的抽象部分和实现部分来创建不同的组合对象。这种组合复用的方式使得系统更加灵活可以根据需要构建不同的对象组合。 提高可维护性和可读性通过将抽象和实现分离桥接模式使得代码结构更清晰易于理解和维护。每个部分都有自己的责任而且它们之间的关系也更加明确。这种清晰性和可读性有助于减少错误和改进代码的可维护性。 3. W3如何使用下面是代码示例 假设我们正在开发一个游戏其中有不同类型的怪物Monster。每个怪物都有不同的攻击方式AttackMode比如近战攻击和远程攻击。同时怪物还有不同的属性Attribute比如光属性和雷属性。 分析发现这里的怪物可扩展有不同类型怪物的攻击方式也可扩展有近战和远程同时怪物还有不同的属性也可扩展那么这里就有3个可扩展的维度我们选择其中的一个维度作为抽象类其他的作为接口用这个抽象类连接其他接口这就是桥接模式了。 那选谁作为这个抽象类呢选主体Monster是比较符合我们编程风格的。 代码示例 // 首先我们定义一个抽象类 Monster它包含了怪物的基本属性和抽象方法 abstract class Monster {// 攻击方式protected lateinit var attackMode: AttackMode// 基本属性protected lateinit var attribute: Attributefun setAttackMode(attackMode: AttackMode) {this.attackMode attackMode}fun setAttribute(attribute: Attribute) {this.attribute attribute}abstract fun display()abstract fun attack()abstract fun defend() }// 然后我们定义接口 AttackMode, Attribute其中包含了怪物攻击的方法以及怪物的属性 interface AttackMode {fun attack() }interface Attribute{fun display() }// 接下来我们创建不同类型的怪物每个怪物都可以设置不同的攻击方式和展示不同的属性 class MeleeMonster : Monster() {override fun display() {attribute.display()}override fun attack() {attackMode.attack()}override fun defend() {println(Defending as a melee monster)} }class RangedMonster : Monster() {override fun display() {attribute.display()}override fun attack() {attackMode.attack()}override fun defend() {println(Defending as a ranged monster)} }// 最后我们实现具体的攻击方式比如近战攻击和远程攻击还要实现具体的属性比如光属性雷属性class MeleeAttack : AttackMode {override fun attack() {println(Performing melee attack)} }class RangedAttack : AttackMode {override fun attack() {println(Performing ranged attack)} }class LightAttribute: Attribute {override fun display() {println(Show body protection light)} }class ThunderAttribute: Attribute{override fun display() {println(Show body protection thunder)} }// 现在我们可以在应用程序中使用这些类来创建怪物并设置它们的攻击方式和属性 fun main() {val meleeMonster MeleeMonster()meleeMonster.setAttackMode(MeleeAttack())meleeMonster.setAttribute(LightAttribute())meleeMonster.display()meleeMonster.attack()meleeMonster.defend()val rangedMonster RangedMonster()rangedMonster.setAttackMode(RangedAttack())rangedMonster.setAttribute(ThunderAttribute())rangedMonster.display()rangedMonster.attack()rangedMonster.defend() } Thank you for your reading, best regards!
http://www.hkea.cn/news/14547745/

相关文章:

  • 什么是网站什么是网页福州seo经理招聘
  • 做网站都需要什么一家专门做印刷的网站
  • 中山哪家建网站好网页设计模板html代码手机版
  • 银川市住房城乡建设局网站常州建设网站公司哪家好
  • 电商网站建设定制网站域名使用期
  • 郑州 网站建设主营 网站建设 app开发
  • 用开源源码做淘宝客网站做擦边网站
  • 网站国际网络备案号简单的小程序开发
  • 网站自动seo网站案例分析
  • 网站推广策略含义百度快速提交入口
  • 搭建专业网站服务器门户网站设计思路
  • 网站设计文档模板锦州网站建设推广
  • 软件下载网站开发 论文遵义网站建设公司排名
  • 色系网站.天津百度推广开户
  • 怎么创建公司网站空间wordpress直达链接
  • 烟台专业网站建设服装电子商务网站建设过程与实现
  • 查找网站后台入口德州网站建设费用
  • 深圳网站建设好门户网站建设工作制度建立情况
  • 网站建设的推进方案可以进入任何网站的浏览器
  • 海南app网站建设全球最大设计网站
  • 网站后台传照片 c windows temp 拒绝访问代做百度关键词排名
  • 互联网企业网站模板优惠券精选网站怎么做
  • 互联国际网站国外html响应式网站模板下载
  • 国外免费做网站软件快速搭建网站模板
  • 兰州做网站开发wordpress主题无法创建目录
  • 做海关授权的网站阿里邮箱和WordPress
  • 旅游网站建设参考文献做学校网站的内容
  • 网站头部设计代码遵义在线遵义晚报
  • 免费的行情软件网站在线使用专做餐饮的网站
  • 滨河网站建设知道抖音视频是怎么做的网站嘛