|
1
7
我想你应该加一个
你会
一般来说,当您根据变量的类型进行切换时,您应该三思而后行,看看您是否可以改为多态性。 |
|
|
2
1
我觉得这有点优雅:
它依赖于
|
|
|
3
1
我个人同意你可以做你正在做的事情,因为这是一个小的爱好项目。如果你真的想避开你描述的问题,你可以创建一个单独的
我提出的另一个建议是,像这样改变你的逻辑,这与逻辑比你的模型更相关:
这是一个细微的差别,但会显著减少所需的计算量。 更新递归的评论让我意识到,对于mover层的工作方式,我可能还不够清楚。这个想法是要有一个主宰者,钳子,等等,他们知道一个特定的工件类型的移动。因为它们是与一个作品的类型而不是作品本身联系在一起的,所以它们甚至可以是单件作品。每种工件类型都可以有一个mover字段指向其mover,然后您的业务逻辑可以直接调用mover的getpossiblemoves方法,或者工件的getpossiblemoves方法可以简单地调用mover的方法,将自己作为参数传入。模仿者知道向对方的移动者询问其可能的移动,然后根据这些移动者是否会攻击与该移动者相关的移动类型来过滤这些移动。 您可能拥有与当前系统中几乎相同的代码,但是每个工件的代码实际上只关注于表示该工件的信息(位置、颜色等),而实际确定工件移动方式的代码将移动到单独的类层。每门课都有一个目的。 |
|
4
1
如果不涉及这个特定的问题,字典的概念就没有什么本质上的错误,它允许您根据对象的类型查找对象。实际上,.NET FCL已经提供了这样的类型-它被称为
|
|
|
simply lemon · python上链表的添加方法 2 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 2 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 2 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 2 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 2 年前 |