gpt4 book ai didi

actionscript-3 - 是否有替代工厂方法的替代方法?

转载 作者:行者123 更新时间:2023-12-04 08:28:25 24 4
gpt4 key购买 nike

我看到了很多,我想知道是否有一种方法可以很好地重构它以避免大规模切换?这是工厂中的一个方法:RoomControllerFactory,根据其类型实例化游戏位置。这是工厂方法中开关的示例:

            switch (location.getType())
{
case Location.ROOMONE:
return new RoomOneController(location, data, view);

case Location.ROOMTWO:
return new RoomTwoController(location, data, view);

case Location.ROOMTHREE:
return new RoomThreeController(location, data, view);

最佳答案

看到您正在使用 hack 来提供枚举功能 - 为什么不向您的枚举添加一个方法:

public static const ROOMONE : LocationType = new LocationType("locationone", 
function(...) : RoomController {
return new RoomOneController
}
);

(请原谅任何愚蠢的错误 - actionscript 不是我的母语!)

在java中,我会做类似的事情:
public enum LocationType {
ROOMONE {
@Override
public RoomController getRoomController() {
return new RoomOneController();
}
};
public abstract RoomController getRoomController();
}

关于actionscript-3 - 是否有替代工厂方法的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com