组合模式的最佳写法

问题的诞生
  • 我参考了ET的架构,使用组合模式
  • 问题复现,这是一个网络游戏,每个客户端里面有多个玩家player,每个玩家需要操控不同的角色Role
  • 对于本机的player来说,需要监控玩家的操作,向服务器发送信息,对于其它的player就是接收服务器的指令,并且向角色发送指令
  • 对于玩家来说,他拥有ID这样的数据,我这里是直接使用玩家的IPAddress作为ID
  • 而对于每个Role来说,他拥有表现层View和逻辑层Logic
  • 所以我就不知道player和Role之间应该怎么关联。
解决
  • 如果按照继承的解决办法就是
    在这里插入图片描述
  • 但是我并没有,我创建了Player实体,里面放置共有的数据,其它的功能划分为组件,让他们按需添加。比如远程玩家不需要检测本地操作,那就不加这个组件就行了
    在这里插入图片描述
  • 所有Role也是实体,持有表现层的组件
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值