تخلیقی ڈیزائنز میں داخل

مصنوعی ڈیزائن کے نمونے فوری طور پر اُن کی طرف اشارہ کرتے ہیں، اُن کی خصوصیات کو ترتیب دینے، ترتیب دینے اور نمائندگی کرنے کا نظام بناتے ہیں۔ گوF نمونے، یکجا کرنے والے اور فیکٹری کے طریقہ کار میں سے دو سب سے زیادہ پائے جاتے ہیں۔

جائزے میں تنہا‌پھر

تنہا طرزِعمل ایک کلاس کو ایک مثال میں محدود کر کے اس مثال تک رسائی کا عالمی نقطہ فراہم کرتا ہے یہ ایک سادہ سی مثال ہے لیکن ٹیسٹنگ اور قتل‌وغارت پر اس کے اثر کی وجہ سے ایک سب سے زیادہ بحث‌وتکرار ہوتی ہے ۔

ماہرانہ تصورات

  • Single مثال ضمانت: نجی ساختی بیرونی فوریت کو روکتا ہے. ایک وفاقی طریقہ (Ports) (frestruction ) واحد نمونہ واپس آتا ہے۔
  • Global رسائی :] ایکشن کسی عوامی تخط ⁇ یا طریقہ کار کے ذریعے کسی بھی جگہ سے دستیاب ہوتا ہے۔
  • لازی یا شوق ابتدائییت :] نمونہ کو کلاس لوڈنگ وقت (eager) یا پہلے درخواست (lazy) تک بنایا جا سکتا ہے۔

جب تنہا کھڑا ہوتا ہے

  • ایسے وسائل جن کو چلانے کے لیے ضروری ہے : [1] موبائل مینیجر، ٹرمپ پول، رابطہ پول، موبائل سروسز اور ہارڈ ویئر فعال ڈرائیور اکثر ایک ہی طرح سے استعمال کرنے کی ضرورت ہوتی ہے۔
  • Global state جو غیر فعال نہیں ہونا چاہیے : Cache serves, فائل کے نظام کے مطابق، یا Vanver serves in Constrials میں۔
  • وسائل-intensive چیز : ایسے اجسام جو پورے نظام میں تخلیق اور دوبارہ استعمال میں لاتے ہیں۔

اصلاحی معاملات

پڑھنے کا تحفظ سب سے زیادہ عام ہے. ایک قابل عمل عمل ہے جو اور پھر مثال کو مختلف قسم کے حالات پیدا کر سکتا ہے. حلیہ مختلف ماحولوں میں شامل ہو سکتا ہے ، ، [Bill Pughton میں)، یا جاوا میں ایک واحد پر مبنی

جُرم اور رشوت‌ستانی

تنہاٹونوں کو اکثر اینٹی‌پُنا سمجھا جاتا ہے کیونکہ وہ عالمی ریاست کو متعارف کرانے کے لئے مشکل بناتے ہیں—جس سے اِن پر مقابلہ کرنا مشکل ہو جاتا ہے—tests system-decons and sports and نہایت مشکل ثابت ہوتا ہے ؛

تحقیق میں فیکٹری کا طریقہ

فیکٹری کا طریقہ کسی چیز کو بنانے کے لیے ایک منفرد تجویز کرتا ہے لیکن ذیلی کلاسوں کو فیصلہ کرنے دیتا ہے کہ کس کلاس کو فوری طور پر کون سے کلاس کی ذمہ داری سونپی جائے

ماہرانہ تصورات

  • Encapulated تخلیق منطقہ : کلائنٹ کوڈ کو کنکریٹ کلاس نہیں جانتا؛ یہ ایک مصنوعی پیداواری نوعیت کے ذریعے کام کرتا ہے۔
  • Extensibility:] نئی مصنوعات کو نئے کنکریٹ فیکٹریز بنانے سے اس میں شامل کیا جا سکتا ہے جو موجودہ کلائنٹ کوڈ کے بغیر تبدیل کیے جا سکتا ہے۔
  • [Dectivesentation:] فوری طور پر فوری طور پر آنے والی صحیح کلاس کو چلانے کا فیصلہ کیا جاتا ہے، جس کی بنیاد پر ان پٹ، کنوٹ یا پس منظر پر ہوتی ہے۔

جب فیکٹری کا طریقہ اچھا ہو

  • متعلقہ چیزوں کی Famities: جب کوئی نظام کئی پیداواری تبدیلیوں کے ساتھ کام کرنا ہوتا ہے جو عام طور پر ایک منفرد (macept)—
  • Decoupling کلائنٹ کوڈ from Crestitutions: کلائنٹ فیکٹری طریقہ کار کو فون کرکے کسی چیز کو ایک متضاد تعملات سے مطابقت حاصل کرتا ہے. Crestitual class پر تبدیل کرنے کے لیے کلائنٹ کو متاثر نہیں ہوتا۔
  • Economation-restruction تخلیق: [1] درخواست شروع کرنے کا فیصلہ کر سکتی ہے کہ کس کس کس کس کس کس کس کس کس کس کس کس کس کس صنعت کی فیکٹری کو ترتیبی فائل، ماحولی تبدیلی یا رینے کی شرط پر استعمال کرنے کے لیے استعمال کیا جا سکتا ہے۔

اصلاحی معاملات

ایک عام فیکٹری طریقہ کار ایک دلچسپ آلہ استعمال کرتا ہے کلاس جو فیکٹری کے طریقہ کار کو متعارف کراتا ہے (صرف)۔ Concrete پیدا کرنے والے اس طریقہ کو فوری طور پر استعمال کرتے ہیں ۔

حقیقی-ورلڈ مثال: دستاویزات کوانورٹر

ایک درخواست پر غور کریں جو فارمیٹ کے درمیان دستاویزات تبدیل کر دے ۔ایک دلچسپ ] طریقہ طے کرتا ہے. فیکٹری کا طریقہ ، یا پر مبنی کسی فاضلع (Port) پر مبنی ایک نئی کلاس کو تبدیل کرنے کے لیے صرف نئے کلاس کو استعمال کرنا پڑتا ہے

براہ راست کوم ورکنگ : تنہائی‌پسندانہ ورس ۔

اگرچہ دونوں ساختیاتی نمونے ہیں لیکن ان کے مقاصد اور تجارتی اداروں کے تقریباًًًًًًًًًًًًًًًًا یاتھولک ہیں۔

Aspect Singleton Factory Method
Primary goal Ensure a single instance Encapsulate object creation
Instance count Exactly one Many instances, but created through a factory
Control over class selection Not relevant (always same class) Subclasses or runtime logic choose the concrete class
Impact on maintainability Can increase coupling (global access) Reduces coupling (client depends on abstraction)
Testability Often problematic (global state) Good, as factories can be mocked
Extensibility Limited (hard to subclass a singleton) High (new products via new factories)

جب آپ کی زیادہ سے زیادہ دلچسپی ایک دوسرے سے ملتی جلتی ہے اور عالمی سطح پر — مثال کے طور پر ، ایک ایسی غیر موصل سروس جسے سیریس کو ایک فائل میں لکھنا ہو ۔

جب وہ غیرضروری استعمال کرتے ہیں

ایک تنہاٹن کو ایک فیکٹری کے طور پر استعمال کیا جاتا ہے (جیسے کہ ایک یونٹ جو مختلف چیزوں کو بنانا جانتا ہے. یہ رسائی دونوں اشکال کو ملا کر کر کر رکھتا ہے مگر عالمی ریاست کے معاملات کو بہتر طور پر تبدیل کرتا ہے . فیکٹری کے لیے بہتر متبادل ہے

جدید اطلاقات کیلئے عملی تجاویز پر غور کریں

جانچ اور عمل میں توازن

ایک عام کام کا تعارف کر نے کے لئے ایک دوسرے سے مختلف طریقے سے شروع کر دیا گیا ہے اور دوسرے کو آزما کر دیکھیں کہ ایک طرفین کے لئے ایک دوسرے سے رجوع کرنا اور امتحان کا دگنا فراہم کرنا ہے مگر اس کے برعکس ، فیکٹری کی سادگی کو کمزور کر کے اسے آسانی سے استعمال کر کے نئے فریم ورک میں ایک فیکٹری کی جگہ لے جایا جا رہا ہے ۔

ضمنی اور تقسیمی نظامات (Controduction and detroductioned systems) ہیں۔

تنہاٹن تقسیم شدہ نظاموں میں بٹ جاتا ہے کیونکہ "کچھ" کئی مراحل یا نظاموں کو نہیں بڑھا سکتا. مائیکرو سیریز کے ذریعے شیئر وسائل کے لیے، انجینئروں نے شیئر ڈیٹا بیس کا استعمال کیا، جیسے سرخس، یا لیڈر انتخاب—

حقیقی-ورلڈ حل کے لیے جمع کیے جانے والے مسائل

بہت سے پروڈکشن سسٹمز ان نمونوں کو ملانے کے لیے مل جاتے ہیں. مثلاً ، ایک سنگلٹن اتصال پُل مختلف اقسام کے تعلقات بنانے کے لیے فیکٹری کا استعمال کر سکتے ہیں۔

عام غلط‌فہمیوں سے بچنے کے لئے

  • Using Untton جب کوئی فیکٹری کافی ہو : اگر آپ صرف ایک کلاس کی مثال حاصل کرنا چاہیں تو ایک واحد یونٹ کے ساتھ ایک واحد رسائی کے ذریعے
  • Using runy made جب چیز تخلیق معمولی اور ٹھوس ہوتی ہے : اگر چیز چیز کبھی تبدیل نہیں ہوتی اور نہ ہی زیریں کلاسیں، ایک سادہ سی ترکیب ہے۔
  • صنعت اور پیداوار کے خاندانوں کے درمیان میں تغذیہ کا قتل: فیکٹری کے اندر کی حفاظت یا کاروباری منطقی عمل کو نہ رکھنے دیں جو کسی دوسری جگہ ہونا چاہیے۔
  • Forf settle settlement in Onetons: سرور ماحول میں ایک غیر محفوظ اکائی غیر محفوظ شدہ اکائی بوجھ کے تحت بدعنوانی ریاست بنا سکتی ہے۔

کُنَّا

تنہا اور فیکٹریاں طرز عمل میں بنیادی طور پر مختلف کردار ادا کرتی ہیں.

مزید پڑھنے کے لیے دیکھیے کلاسک گوف کے نمونے [Restruction.Guru اور ]۔ مزید دیکھیے، مارٹن فولر کی جانچ [FLT] [Registry] [fology] پر ربط :(انگریزی:TLL) کے متبادل [FLTLTLTLTT]]] پر ربط : [Mont کے لیے دیکھیے: [TLLLLLLLLTLTTL]]