AngularJS的工厂是否与工厂模式相同?

时间:2016-07-08 13:52:32

标签: angularjs design-patterns

昨天,我听到一位同事说,工厂的角度与工厂模式不一样。我很好奇这是否是一个有效的陈述以及原因。

通常,工厂会为您创建一个对象实例。从查看我们的代码看,工厂看起来像是一个包装器或对象,也可以为相关的Web服务调用,所以GET,PUT,POST,PATCH,DELETE。在某些情况下,这种情况会有所不同,但在大多数情况下,它看起来像是有助于与相关Web服务交互的东西。

拥有一个只根据“GET”返回对象的工厂似乎会更符合传统的工厂模式,但是我们处理其他动词的事实让我觉得这就是事物偏离模式的地方。

有人可以确认这是否是使用角度工厂的标准方法,如果是,如果我的直觉/想法是正确的,或者我是否遗漏了什么?

更新

请求提供我正在谈论的内容的代码。我做了一些谷歌搜索角度工厂的例子,看看其他人是否做了类似于我在工作中看到的东西。我在其中找到了以下示例:http://weblogs.asp.net/dwahlin/using-an-angularjs-factory-to-interact-with-a-restful-service

当您查看示例时,您会注意到“dataFactory”不仅具有GET,还具有其他HTTP谓词。这是用户群的不良做法,还是使用它的标准方式,工厂与设计模式不同?

1 个答案:

答案 0 :(得分:1)

Factory是Angular中的Provider和Factory模式的一种形式,它只是一个对象负责创建其他对象的过程。

您引用的示例也是Factory模式的实现,虽然不理想,但dataFactory创建并返回一个代理类型对象,该对象将在另一个消费类中用于执行CRUD操作。不要将它与HTTP动词混淆,后者与Factory模式无关。换句话说,工厂类可以返回一个可以包含任何类型操作的对象。

实现工厂类的理想方法:

aec_calculate_sensitivity

希望这澄清。