![]() |
1
3
两者都不。我会给你的物品添加一个方法(应该是物品吗?)班级:
定义项可以返回的常量值,以指示它不希望被移动。(0,0)如果返回值指示一个增量,或(-1,-1)如果返回值指示一个绝对位置。或者如果您不想定义一个魔法值:
优势: 现在您已经在两个类中适当地分离了移动逻辑。该项目知道它是否要移动,如果要移动到哪里。映射可以评估移动的合法性,然后根据逻辑执行或忽略项目的移动请求。没有引用处理,没有笨拙的回调机制。 此外,您的map类中的逻辑将能够增加复杂性。考虑一个场景,其中一个项目的移动可能阻止另一个项目的移动,或者被另一个项目的移动阻止。使用您列出的任何一种方法都很难实现这一点。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 6 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 6 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 6 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |