Javascript 如何选择合适的装饰师
我正在创建一个使用AI的游戏。这个AI'API在Angular服务中有3个方法 以下是简化代码的示例:Javascript 如何选择合适的装饰师,javascript,angularjs,angular-decorator,Javascript,Angularjs,Angular Decorator,我正在创建一个使用AI的游戏。这个AI'API在Angular服务中有3个方法 以下是简化代码的示例: app.service('AI', [function(){ return { offer: angular.noop, accept: angular.noop, reject: angular.noop } }]) 困难的部分是,方法实现(以及AI如何反应)可能会根据几个参数(国籍、年龄等)发生变化 我曾考虑过使用角度装饰器,但我需要在几个装饰器
app.service('AI', [function(){
return {
offer: angular.noop,
accept: angular.noop,
reject: angular.noop
}
}])
困难的部分是,方法实现(以及AI如何反应)可能会根据几个参数(国籍、年龄等)发生变化
我曾考虑过使用角度装饰器,但我需要在几个装饰器中进行选择。
我可以创建文件/实现:
- 小于10.decorator.js
- 小于-20.decorator.js
- 等等
您有更好的解决方案吗?您是否考虑过使用工厂而不是服务
// teenagerAI and adultAI could be values, constants, factories...
app.factory('createAI', function (teenagerAI, adultAI) {
return function (aiType) {
switch (aiType) {
case 'teenager':
return teenagerAI;
case 'adult':
return adultAI;
}
};
});
然后您可以注入createAI
并使用它:
createAI('adult');
我考虑过,但我可能会有二十个或更多不同的人工智能,加上二十+否认不是最好的方法…你可以考虑使用<代码>注射器。代码>在您的工厂中。最终使用了一个工厂+$injector.get(foo);。Thks。