আমাকে এখানে সহ্য করুন। আমি জানি যে এর মতো আরও উত্তর রয়েছে: 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;
}
};
});
myApp.service('fooService', function() {
var fooVar;
var addHi = function(foo){ fooVar = 'Hi '+foo;}
this.setFoobar = function(foo){
addHi(foo);
}
this.getFoobar = function(){
return fooVar;
}
});
function MyCtrl($scope, fooService, fooFactory) {
fooFactory.setFoobar("fooFactory");
fooService.setFoobar("fooService");
//foobars = "Hi fooFactory, Hi fooService"
$scope.foobars = [
fooFactory.getFoobar(),
fooService.getFoobar()
];
}