如何设计这两个类?

liunliun 2019-04-05 02:07:00
在一个2000*2000的地图中,每个地块上面都可以建房子,每个地块有相应的操作,每个建筑物也有。
那么我想设计一个mapManager类中含有2000*2000的tileMap类,与此同时在mapmanager中有一个buildingManager类,其中也含有一个list<Building>类

现在有个问题是假设我需要新建某建筑,那么这个函数比如说create(),一定是在buildingmanager中或者在Building类中,同时又需要更改当前地块也就是tileMap的属性,比如说吧土地改成工业用地。
那么问题是如何吧mapmanager的对象传入这个create函数中?我知道可以直接参数传递,但是那样的话就相当于吧父容器的实例传给子实例做参数,是不是不太好?

说简单点,就是mapManager中包含tileMap,包含buildingManager,那么想在buildingmanager的函数create中修改mapmanager的tilemap的属性,要怎么改?直接吧mapmanager作为参数传递进去是不是不好。有没有其他设计的办法

有没有更好的办法设计这两个类?
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Manager做成单例模式
姩菡粑粑 2019-04-09
  • 打赏
  • 举报
回复
首先你要创建 可以用父类也就是总管理类来创建 mapmanager.buildingmanager.create 这个mapmanager管理类只负责创建更新删除等操作, 具体的还是要到你的buildingmanager类中 。 如果你想更改当前地块也就是tileMap的属性 也是基于mapmanager它来管理的
Shadowrabbit 2019-04-07
  • 打赏
  • 举报
回复
Manager类应该做成单例模式,静态直接获取,不需要传进入

2,535

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧