基本上我想弄清楚如何避免在javascript的构造函数中有很多参数。原因是我和朋友一起制作太空游戏是为了好玩,而飞船是基于模块的。目前他们可以拥有一个引擎和许多传感器、武器和殖民地模块。可能还会有更多。每艘船都是根据规范建造的,所以要制造一艘船,你只需给它一个规范,船的建造者会处理剩下的事情。但是在制定规范时,我需要提供模块。我想避免的是这样做:
ShipSpec = function(civ, name, hull, engine, sensors, weapons, colony, ...) {}
而且我不确定最好的解决方案是什么。目前我有一个访问者模式解决方案,其中每个模块都有一个“注册”方法。此方法有一个参数,然后将使用该参数注册自身(如果模块是武器,它会调用用于注册武器的方法,如果它是传感器,则会调用用于注册传感器的方法等)。那么我可以这样做:
ShipSpec = function(civ, name, hull, engine, modules) {}
但是,我觉得这可能有点复杂。也许。不幸的是,我有时会使事情复杂化。创建规范然后在创建后将模块添加到其中会更好吗?或者这个解决方案好吗?这个问题还有其他解决方案吗?
而且我们计划让玩家可以创建规格并可能修改现有规格,所以我想以一种好的方式让它变得容易。
保重,克尔