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

网站建设培训班学费企业微营销网站

网站建设培训班学费,企业微营销网站,嵩县网站建设,沧州网络运营公司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://wiki.neutronadmin.com/news/273203/

相关文章:

  • 温州做网站优化名片网页设计代码
  • 网站建设公司如何盈利2017网站趋势
  • 做网站 侵权免费注册个人网站
  • 中企网站案例出口外贸交易平台
  • 滁州做网站的公司百度回收网站搭建
  • 保洁公司用哪些网站做推广建设网站的企业名称
  • 定制网站建设加盟代理企业网站开发计划书
  • wordpress全站美化响应式网站建设公司‘
  • 广州网站制作公司联系方式中国十大产品设计公司
  • 公司怎么与网站进行活动推广网站电子备案
  • oa办公系统网站开发网站正在建设中 英语
  • 网站一键生成手机网站制作彩页用什么软件
  • 郯城网站建设某个网站做拍卖预展的好处
  • 为什么建行网站打不开青岛移动网站开发
  • 好创意网站有哪些方面网络营销的目的和意义
  • 建设图书馆网站上海网络关键词优化
  • 纯净水企业怎样做网站福建seo排名
  • 网站 建设文档海口双语网站建设
  • 广西住房和城乡建设厅网站兰州网站建设价格
  • 小男生和大人做的网站网页平面设计培训班
  • 做网站的软件wd的叫啥注册一个公司需要几个人
  • 网站欢迎框代码扬州网页制作公司
  • 搜索引擎的关键词优化网站优化培训机构
  • 找网站公司做网站用了织梦可以吗校园网站怎么建设
  • 网站开发产权保护武昌有专业做网站
  • 福建省建设相关网站公司如何办网站
  • 环保主题的网站模板贵州省建设部网站
  • 广东省建筑网站weixinqqcom微信官网
  • 大型网站建设托管服务wordpress问卷调查
  • 成都seo公司排名seo网站优化怎么做