java-两个对象的双向依赖
背景 我有以下几点: 消防扩展元素类, 木材延伸元素类, 组成元素的Tile类. Tile类表示世界/屏幕/画布中的图块,并具有一些图形和逻辑功能. 我想实现火势蔓延的功能-当火元素“接触”木元素时,我希望木元素成为火. “世界”初始化为由Wood元素组成的图块网格,但其中一个具有Fire元素的图块应该散布. 我尝试过的 我尝试将元素链接在一起,这意味着每个元素都可以访问他的四个最近的邻居.这样,火可以进入附近的一块木头. 我尝试将整个功能移至Tile类.尽管它确实可以解决问题,但由于两个原因,我不喜欢它: >从逻辑上讲,我希望火势能够自主行动,这意味着火势是蔓延的,而不是地砖. 代码示例
深入 >切片的“网格”由二维的Tiles数组(逻辑部分)和一个由所有切片组成的JavaFx Pane(可视部分)组成. 提前致谢! 最佳答案
我立刻想到,应该有一个班级来管理火势蔓延.假设有一个世界级的类,它了解瓷砖的网格及其性质.火对木材,木材的位置和邻居一无所知.伍德也是如此.它们是生活的独立对象.世界将决定他们的居住地以及彼此之间的互动方式.
假设Fire发布了一个事件并告诉
世界收到消息,考虑到火的特征,并相应地修改网格.
拥有一个Fire实例并跟踪其燃烧的所有元素将很有趣.我可以看到复制构造函数的修改版本.
不过,您可以自由地以自己的方式记录它. 这样,当火灾结束时,您将能够(全部或部分)还原细胞.您还可以分析火势如何发展.我不确定这是否可以派上用场,但是设计很有趣. 我正在考虑替代方案…我仍然认为,向Fire提供过多的信息(整个图块)是不可行的,Wood和Fire单元之间的任何交互都应该通过经理类. 让我们看一下另一种场景,该场景暗示世界提供了一部分自身视图,作为与火元素相邻的列表.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – Android Google Maps V2 – Sd卡作为Tile Provider
- Android为图片添加水印文字
- JAVA实现账户取款和存款操作
- 是否适合学习和使用JAVA的ACM包?
- Spring getType方法:获取JavaBean的类型
- XXXSummaryStatistics java-10中的新构造函数
- Java Annotations: Explored & Explained--转载
- java – 使用Tomcat手动部署webapp(即autoDeploy = false,
- java – 由内容设置的JDesktopPane首选大小
- java – 使用web.xml和setMaxInactiveInterval设置会话超时