用于不同类型客户端的不同方法的接口

时间:2015-12-23 19:03:05

标签: typescript oop inheritance

我的项目包括创建一个FreeCell游戏 - 使用HTML 5 Canvas和JavaScript。我目前有一个部分工作的游戏,但代码开始变得非常混乱。

因此,我开始重构它,并确定了一些我可以集中在对象中的行为。我有一个名为 CardContainer 的界面,它在游戏中保存卡片,实现它的类是 FreeCell HomeCell Stack < / strong>,它们是临时单元格,堆栈(我把卡片放在游戏中),以及初始堆栈(我在游戏中使用卡片的地方)。

此界面上的两个相关方法是:

  • pop(quantity: Integer): Card[] Stack 内部有一张或多张卡片,而其他卡片只有一张卡片。

  • move 堆叠它会返回数量数量的卡片,但对于其他卡片,它会返回一张卡片。

我发现我的设计错误,因为我的界面的某些客户端会忽略 pop 方法中的数量参数。另一方面,如果我改变这个接口以获得更一致的东西(例如,根据客户端有或没有参数),我将介绍一个向下传播的代码气味,我总是在这里检查客户端的类型。

首先,我不知道如何用更通用的术语来表达这个问题。

如何解决此设计同时为不必要的客户端删除参数并避免向下转换?

修改

我有一个{{1}}方法,它接收共享接口 CardContainer 的源和目标。

0 个答案:

没有答案