AngularJS: เมื่อใดควรใช้บริการแทนโรงงาน
กรุณาอดทนกับฉันที่นี่ ฉันรู้ว่ามีคำตอบอื่น ๆ เช่น: AngularJS: บริการกับผู้ให้บริการกับโรงงาน อย่างไรก็ตามฉันยังไม่สามารถคิดออกเมื่อคุณต้องการใช้บริการมากกว่าโรงงาน จากสิ่งที่ฉันสามารถบอกได้ว่าโรงงานใช้กันทั่วไปเพื่อสร้างฟังก์ชั่น "ทั่วไป" ที่สามารถเรียกใช้โดยตัวควบคุมหลายตัว: การสร้างฟังก์ชั่นตัวควบคุมทั่วไป เอกสารเชิงมุมดูเหมือนจะชอบโรงงานมากกว่าบริการ พวกเขายังอ้างถึง "บริการ" เมื่อพวกเขาใช้โรงงานซึ่งยิ่งทำให้สับสน! http://docs.angularjs.org/guide/dev_guide.services.creating_services ดังนั้นเมื่อหนึ่งจะใช้บริการ มีบางสิ่งที่เป็นไปได้หรือทำได้ง่ายกว่ามากกับบริการ มีอะไรแตกต่างที่เกิดขึ้นเบื้องหลังหรือไม่ ความแตกต่างด้านประสิทธิภาพ / หน่วยความจำ? นี่คือตัวอย่าง นอกเหนือจากวิธีการประกาศพวกเขาดูเหมือนกันและฉันไม่สามารถหาสาเหตุที่ฉันทำอย่างใดอย่างหนึ่งกับคนอื่น http://jsfiddle.net/uEpkE/ อัปเดต:จากคำตอบของโทมัสดูเหมือนจะบอกเป็นนัยว่าการบริการนั้นมีไว้สำหรับตรรกะที่ง่ายขึ้นและโรงงานสำหรับตรรกะที่ซับซ้อนมากขึ้นด้วยวิธีการส่วนตัวดังนั้นฉันจึงอัปเดตรหัสซอด้านล่างและดูเหมือนว่าทั้งสองสามารถรองรับฟังก์ชั่นส่วนตัวได้หรือไม่ myApp.factory('fooFactory', function() { var fooVar; var addHi = function(foo){ fooVar = 'Hi '+foo; } return { setFoobar: function(foo){ addHi(foo); }, getFoobar:function(){ return fooVar; } …