【发布时间】:2014-01-22 20:23:48
【问题描述】:
我正在 Starling 框架中为我的新点击游戏创建架构。它的大小设置得很大,所以我试图确保使用最佳的面向对象实践来确保我不会 A) 重复相同的方法。 B) 保持可持续和清洁。
我不知道接口是一种收缩所有类的方式。保持一切一致并确保子类具有正确运行的方法。让我们看一个我创建的播放器类的示例。
public interface IPlayer {
function changeDirection():void;
function walkToPosition():void;
function pickUpItem():void;
}
class AbstractPlayer extends Sprite implements IPlayer {
public function changeDirection():void {}
protected function walkToPosition():void {}
protected function pickUpItem():void {}
}
class Player extends AbstractPlayer {
override protected function walkToPosition():void {}
override protected function pickUpItem():void {}
}
我知道 AS3 本身不支持抽象类。但我选择以这种形式使用它,因为它是有意义的。我不明白为什么接口只支持公共方法。这不会破坏拥有界面的全部目的吗?所以你知道玩家需要什么方法。只声明播放器类的公共函数似乎只完成了一半。
对这个概念进行详细的解释,或许还有一个更高级的解决方案来解释这个概念的结构将是非常有益的。
非常感谢, 肖恩
【问题讨论】:
标签: actionscript-3 class actionscript interface abstract