《设计模式与游戏完美开发》-桥接模式(Bridge)恶棍笔记

本文深入探讨桥接模式的应用场景及其实现方式,通过人物与武器、形状与引擎等实例,阐述如何实现抽象与实现的分离,以及该模式在行动载具设计和角色施展法术等功能扩展中的作用。

书作者表示,桥接模式是他认为最好应用也是最难理解的。
看完本章后,无疑感叹桥接模式的伟大。确实是非常好用的一种模式~

一般来说用在

抽象与实现分离的情况

比如有许多形状,需要支持draw。有几种引擎,可以实现render,但代码不同。
为了方便扩展,那么让各个形状继承于抽象形状类。并各自在自己的draw_real中调用父类draw。
而父类draw也早就获得了引擎子类,子类重写父类的render方法->引用到自己带的代码中。

两个群组因为功能上的需求需要合作但又想各自发展无关对方

就是书里的情况【人物】和【武器】的互相搭配。

  1. 父类武器、父类人物
  2. 父类人物创建时获得一个武器子类
  3. 父类人物可以调用父类武器手上的fire方法(叫fire_real)
  4. 有各种人物继承父类人物,在attack方法中调用fire_real方法。
  5. 有各种武器继承父类武器,只需要重写实现自己的fire方法。
  6. 以上。哦,别忘了人物set_weapon。这样weapon可以获得自己的所有者。【全用传的呢?不过先获得的话会方便一些功能的实现】

在这个例子中,父类人物就是抽象类,它定义了攻击目标的工作,却没有实现。父类武器实现了这个FIRE,是所谓的实现类。

设计模式有点像是思想中的印子。你在思考时,可以用这种方式辅助来思考关系,方便实现。

*结论

p117页提到可以实现

1. 行动载具设计。

嗯……实现方法大概是父类人物获得一个载具子类。通过抽象的【骑】来调用载具子类中的【被骑】方法。子类重写实现父类的【被骑】方法。结束。最早的例子中,还需要传入fire的target。这里好像暂时没有这个target要处理。毕竟骑马的时候不是为了要影响其他的东西吧?

2. 角色施展法术。

角色可以有很多种法术、比如治疗、比如火系。实现的方法是角色获得一个法术类。然后有抽象方法:释放法术。法术子类继承法术类并实现释放的情况。这是最简单的一种。看看以后怎么和其他模式结合吧,毕竟法术什么的可以无数种。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值