我的程序中定义了一个名为'EntityName'的工厂。现在我想重构它作为提供者,因为我需要在提供者级别添加注册函数。 但是,我不想像现在这样使用现有工厂更改所有地方:
new EntityName()
所以我重构了我的工厂是这样的提供者:
myMoodule.provider('EntityName', function() {
var _this = this;
_this.registerLabel = function registerLabel(name) {
...
};
_this.$get = function (session, Logger) {
var logger = new Logger('EntityName');
return function EntityName(){...}
}
)};
这样我可以在提供者级别(registerLabel)中使用这两种方法,而不需要使用New EntityName()
重构所有位置
我的问题是 - 我是否可以在'服务'级别添加一些功能,并保留我不需要重构所有New EntityName()
的事实:
例如我想要一个方法EntityName.replaceLabel()
(与var name = new EntityName()
我希望服务公开更多功能 - 而不仅仅是构造函数。可能吗 ?我该怎么做? $ get将返回两个构造函数(因此我不需要更改所有其他位置)并且还公开其他方法并像使用任何其他服务一样使用它