কৌণিক শুধুমাত্র একটি সিঙ্গলটন পরিষেবা / কারখানার বিকল্প দেয়। এর চারপাশের একটি উপায় হল একটি কারখানা পরিষেবা যা আপনার নিয়ামক বা অন্যান্য গ্রাহক দৃষ্টান্তগুলিতে আপনার জন্য একটি নতুন উদাহরণ তৈরি করবে। কেবল ইনজেকশন দেওয়া জিনিসটি ক্লাস যা নতুন দৃষ্টান্ত তৈরি করে। অন্যান্য নির্ভরতা ইনজেকশনের জন্য বা ব্যবহারকারীর নির্দিষ্টকরণে আপনার নতুন বস্তুর সূচনা করার জন্য এটি পরিষেবা (পরিষেবা বা কনফিগারেশন যোগ করা) ভাল জায়গা
namespace admin.factories {
'use strict';
export interface IModelFactory {
build($log: ng.ILogService, connection: string, collection: string, service: admin.services.ICollectionService): IModel;
}
class ModelFactory implements IModelFactory {
build($log: ng.ILogService, connection: string, collection: string, service: admin.services.ICollectionService): IModel {
return new Model($log, connection, collection, service);
}
}
export interface IModel {
}
class Model implements IModel {
constructor(
private $log: ng.ILogService,
private connection: string,
private collection: string,
service: admin.services.ICollectionService) {
};
}
angular.module('admin')
.service('admin.services.ModelFactory', ModelFactory);
}
তারপরে আপনার গ্রাহক দৃষ্টান্তে আপনার কারখানার পরিষেবা প্রয়োজন এবং যখন প্রয়োজন হবে তখন একটি নতুন উদাহরণ পেতে কারখানার বিল্ড পদ্ধতিতে কল করুন
class CollectionController {
public model: admin.factories.IModel;
static $inject = ['$log', '$routeParams', 'admin.services.Collection', 'admin.services.ModelFactory'];
constructor(
private $log: ng.ILogService,
$routeParams: ICollectionParams,
private service: admin.services.ICollectionService,
factory: admin.factories.IModelFactory) {
this.connection = $routeParams.connection;
this.collection = $routeParams.collection;
this.model = factory.build(this.$log, this.connection, this.collection, this.service);
}
}
আপনি দেখতে পাচ্ছেন যে এটি কারখানার পদক্ষেপে উপলভ্য নয় এমন কিছু নির্দিষ্ট পরিষেবা ইনজেকশনের জন্য বৈপরীত্য সরবরাহ করে। সমস্ত মডেল দৃষ্টান্ত ব্যবহার করার জন্য আপনি কারখানার দৃষ্টান্তে সর্বদা ইনজেকশনটি পেতে পারেন।
দ্রষ্টব্য আমাকে কিছু কোড সরিয়ে ফেলতে হয়েছিল যাতে আমি কিছু প্রসঙ্গ ত্রুটি করতে পারি ... আপনার যদি এমন কোনও কোডের নমুনার প্রয়োজন হয় যা আমাকে জানাতে পারে।
আমি বিশ্বাস করি যে এনজি 2 আপনার ডিওমে সঠিক জায়গায় আপনার পরিষেবার একটি নতুন উদাহরণ ইনজেকশনের বিকল্প পাবে যাতে আপনার নিজের কারখানার বাস্তবায়ন তৈরি করতে হবে না। অপেক্ষা করতে হবে এবং দেখতে হবে :)