مقالات

ڊيزائن جا نمونا بمقابله سولڊ اصول، فائدا ۽ نقصان

ڊيزائن جا نمونا مخصوص گھٽ سطحي حل آھن سافٽ ويئر ڊيزائن ۾ بار بار مسئلن لاءِ.

ڊيزائن جا نمونا ٻيهر قابل استعمال حل آهن جيڪي ڪيترن ئي منصوبن تي لاڳو ٿي سگهن ٿيون.

اندازي مطابق پڙهڻ جو وقت: 5 منٽ

ڊيزائن جي نمونن ۽ SOLID اصولن جي وچ ۾ بنيادي فرق

  1. ڊيزائن جو نمونو:
    • مخصوص حل: ڊيزائن جا نمونا مخصوص آهن، سافٽ ويئر ڊيزائن ۾ بار بار ٿيندڙ مسئلن لاءِ گهٽ-سطح حل.
    • عمل درآمد جا تفصيل: عام اعتراض تي مبني پروگرامنگ چئلينجن کي حل ڪرڻ لاءِ ٺوس لاڳو ھدايتون مهيا ڪريو.
    • مثال: ڪجھ معروف ڊيزائن جي نمونن ۾ سنگلٽن، فيڪٽري جو طريقو، ۽ اڊاپٽر نمونن شامل آھن.
    • حفاظت: ڊيزائن جا نمونا آزمايا ويا آهن ۽ وڏي پيماني تي ڪميونٽي طرفان قبول ڪيا ويا آهن، انهن کي پيروي ڪرڻ لاء محفوظ بڻائي ٿو.
  2. مضبوط اصول:
    • عام ھدايتون: SOLID اصول اعليٰ سطحي ھدايتون آھن جيڪي سٺن سافٽ ويئر ڊيزائن کي ڄاڻ ڏين ٿيون.
    • اسپيبلبل فن تعمير: اهي اسڪالبل، برقرار رکڻ، ۽ پڙهڻ جي قابليت تي ڌيان ڏين ٿا.
    • ٻوليءَ جو پابند ناهي: SOLID اصول ڪنهن مخصوص پروگرامنگ ٻوليءَ جا پابند نه آهن.
    • مثالون ؛
      • اڪيلو ذميواري اصول (SRP): هڪ طبقي کي تبديل ڪرڻ لاء صرف هڪ سبب هجڻ گهرجي.
      • کليل / بند اصول (OCP): سافٽ ويئر ادارن کي وڌائڻ لاء کليل هجڻ گهرجي پر ترميم لاء بند ڪيو وڃي.
      • Liskov متبادل اصول (LSP): ذيلي قسمن کي انهن جي بنيادي قسمن سان تبديل ڪرڻ گهرجي.
      • Interface Segregation Principle (ISP): ڪلائنٽ کي انٽرفيس تي انحصار ڪرڻ تي مجبور نه ڪيو وڃي جيڪي اهي استعمال نٿا ڪن.
      • انحصار جي ڦيرڦار جو اصول (DIP): اعلي سطحي ماڊلز کي هيٺين سطح جي ماڊلز تي انحصار نه ڪرڻ گهرجي؛ ٻنهي کي تجريد تي منحصر ڪرڻ گهرجي.

تت ۾، ڊيزائن جا نمونا پيش ڪن ٿا مخصوص حل، جڏهن ته SOLID اصول بهتر سافٽ ويئر ڊيزائن لاءِ عام هدايتون مهيا ڪن ٿا

ڊيزائن جي نمونن کي استعمال ڪرڻ جا فائدا

  • ٻيهر استعمال ڪرڻ جي صلاحيت: ڊيزائن جا نمونا قابل استعمال حل آهن جيڪي ڪيترن ئي منصوبن تي لاڳو ٿي سگهن ٿيون. قائم ڪيل نمونن کي استعمال ڪندي، ڊولپر وقت ۽ ڪوشش بچائيندا آهن، جيئن انهن کي عام مسئلن لاءِ ڦيٿي کي ٻيهر ٺاهڻ جي ضرورت ناهي.
  • Defiفن تعمير جي قوم: ڊيزائن جا نمونا مدد defiسافٽ ويئر سسٽم جي فن تعمير کي بهتر ڪريو. اهي مخصوص ڊيزائن جي چيلنجز کي حل ڪرڻ، استحڪام ۽ برقرار رکڻ کي يقيني بڻائڻ لاء هڪ منظم طريقي سان مهيا ڪن ٿا.
  • Flessibilità: ٽيمپليٽس تبديلين جي ضرورتن کي ترتيب ڏيڻ ۾ لچڪ جي اجازت ڏين ٿا. جڏهن نيون خاصيتون يا تبديليون گهربل هونديون آهن، ڊولپرز موجوده ٽيمپليٽس کي تبديل ڪري سگھن ٿا يا وڌائي سگھن ٿا بغير سڄي سسٽم کي ٽوڙڻ جي.

ڊيزائن جي نمونن کي استعمال ڪرڻ جا نقصان

  • سکيا وارو وکر: سمجھڻ ۽ ڊزائين جي نمونن کي لاڳو ڪرڻ لاء علم ۽ تجربو جي ضرورت آھي. نوان ڊولپرز شايد تصورن کي سمجھڻ ۽ ڏنل مسئلي لاءِ صحيح نمونو چونڊڻ ڏکيو پئجي سگھن ٿا.
  • زياده استعمال: آسانيءَ سان دستياب ڊيزائن جا نمونا هجڻ ڪري غلط فهمي پيدا ٿي سگهي ٿي ته موجوده نمونن کي استعمال ڪندي سڀ مسئلا حل ٿي سگهن ٿا. ٽيمپليٽس جو گهڻو استعمال تخليقيت کي محدود ڪري سگهي ٿو ۽ بهتر، وڌيڪ جديد حلن جي ڳولا ۾ رڪاوٽ بڻجي سگهي ٿو.
  • پيچيدگي- ڪجهه ڊيزائن جا نمونا اضافي پيچيدگي متعارف ڪرايو ڪوڊ بيس ۾. ڊولپرز کي لازمي طور تي نمونن کي استعمال ڪرڻ ۽ ڪوڊ کي سمجھڻ جي قابل بڻائڻ جي وچ ۾ توازن ڳولڻ گهرجي.

تت ۾، ڊيزائن جي نمونن کي ٻيهر استعمال ڪرڻ، فن تعمير ۽ لچڪ جي لحاظ کان اهم فائدا پيش ڪن ٿا، پر انهن جو استعمال غير ضروري پيچيدگي کان بچڻ ۽ تخليقيت کي فروغ ڏيڻ لاء مناسب هجڻ گهرجي.

Laravel ۾ ڊيزائن جي نموني جو مثال: سنگلٽن

سنگلٽن ڊيزائن جو نمونو يقيني بڻائي ٿو ته هڪ طبقي ۾ صرف هڪ مثال آهي ۽ داخلا جو هڪ واحد نقطو مهيا ڪري ٿو. Laravel ۾، هي ماڊل اڪثر ڪري وسيلن کي منظم ڪرڻ لاء استعمال ڪيو ويندو آهي جهڙوڪ ڊيٽابيس ڪنيڪشن يا ترتيب واري سيٽنگون.

هتي PHP ۾ سنگلٽن پيٽرن تي عمل درآمد جو بنيادي مثال آهي:

جدت نيوز ليٽر
جدت تي سڀ کان اهم خبر نه وڃايو. انهن کي اي ميل ذريعي حاصل ڪرڻ لاء سائن اپ ڪريو.

<؟php
ڪلاس سنگلٽن {
نجي جامد $مثال = null؛

خانگي فنڪشن __construct() {
// پرائيويٽ ڪنسٽرڪٽر سڌو انسٽيٽيشن کي روڪڻ لاءِ
}

عوامي جامد فنڪشن getInstance(): self {
جيڪڏهن (null === خود::$ مثال) {
خود::$ مثال = نئون خود ()؛
}
واپسي خود::$ مثال؛
}

// ٻيا طريقا ۽ خاصيتون شامل ڪري سگھجن ٿيون هتي
}

// استعمال:
$singletonInstance = Singleton::getInstance();
// ھاڻي توھان وٽ سنگلٽن ڪلاس جو ھڪڙو مثال آھي

// Laravel ۾ استعمال جو مثال:
$database = DB::Connection('mysql')؛
// ڊيٽابيس ڪنيڪشن جو مثال حاصل ڪريو (سنگلٽن)

نموني ڪوڊ ۾:

  • سنگلٽن ڪلاس ۾ هڪ خانگي ڪنسٽرڪٽر آهي جيڪو سڌو سنئون انسٽيشن کي روڪڻ لاءِ.
  • getInstance() طريقو ضمانت ڏئي ٿو ته ڪلاس جو صرف هڪ مثال موجود آهي؛
  • توھان ضرورت مطابق سنگلٽن ڪلاس ۾ ٻيا طريقا ۽ خاصيتون شامل ڪري سگھو ٿا؛


Laravel سروس ڪنٽينر پڻ استعمال ڪري ٿو سنگلٽن پيٽرن کي ڪلاس انحصار کي منظم ڪرڻ ۽ انحصار انجيڪشن انجام ڏيڻ لاءِ. جيڪڏهن توهان Laravel اندر ڪم ڪريو ٿا، ان جي سروس ڪنٽينر کي استعمال ڪرڻ تي غور ڪريو ۽ وڌيڪ جديد استعمال جي ڪيسن لاءِ خدمت فراهم ڪندڙ سان پنهنجي ڪلاس کي رجسٽر ڪريو.

Ercole Palmeri

جدت نيوز ليٽر
جدت تي سڀ کان اهم خبر نه وڃايو. انهن کي اي ميل ذريعي حاصل ڪرڻ لاء سائن اپ ڪريو.

تازيون مضمونون

آن لائين ادائگيون: ھتي آھي ڪيئن اسٽريمنگ سروسز توھان کي ھميشه لاءِ ادا ڪنديون آھن

لکين ماڻهو ادا ڪن ٿا اسٽريمنگ سروسز لاءِ، ادا ڪندا مھينا سبسڪرپشن فيس. اها عام راءِ آهي ته توهان…

29 اپريل 2024

Veeam خاصيتون ransomware لاءِ سڀ کان وڌيڪ جامع سپورٽ ، تحفظ کان وٺي جواب ۽ بحالي تائين

ويم پاران Coveware سائبر ڀڃڻ واري واقعي جي جوابي خدمتون فراهم ڪرڻ جاري رکندو. Coveware پيش ڪندو فرانزڪ ۽ ريميڊيشن صلاحيتون…

23 اپريل 2024

گرين ۽ ڊجيٽل انقلاب: ڪيئن اڳڪٿي واري سار سنڀال تيل ۽ گئس جي صنعت کي تبديل ڪري رهي آهي

اڳڪٿي واري سار سنڀال تيل ۽ گئس جي شعبي ۾ انقلاب آڻيندي آهي، پلانٽ جي انتظام لاءِ هڪ جديد ۽ فعال طريقي سان.…

22 اپريل 2024

برطانيه جي اينٽي ٽرسٽ ريگيوليٽر GenAI مٿان بگ ٽيڪ الارم وڌائيندو آهي

برطانيه جي سي ايم اي مصنوعي ڄاڻ رکندڙ مارڪيٽ ۾ بگ ٽيڪ جي رويي بابت خبردار ڪيو آهي. اتي…

18 اپريل 2024

پنھنجي ٻوليءَ ۾ جدت پڙھو

جدت نيوز ليٽر
جدت تي سڀ کان اهم خبر نه وڃايو. انهن کي اي ميل ذريعي حاصل ڪرڻ لاء سائن اپ ڪريو.

اسان جي تابعداري ڪريو