د ډیزاین نمونې د سافټویر ډیزاین کې د تکراري ستونزو لپاره ځانګړي ټیټ کچې حلونه دي.
د ډیزاین نمونې د بیا کارونې وړ حلونه دي چې په ډیری پروژو کې پلي کیدی شي.
د لوستلو اټکل شوی وخت: 5 منیوټ
د ډیزاین نمونو او SOLID اصولو ترمنځ اصلي توپیرونه
- ډیزاین نمونه:
- ځانګړي حلونه: د ډیزاین نمونې د سافټویر ډیزاین کې تکراري ستونزو لپاره ځانګړي ، ټیټ کچې حلونه دي.
- د تطبیق جزئیات: د عام اعتراض پر بنسټ د پروګرام کولو ننګونو د حل لپاره د پلي کولو جامع لارښوونې چمتو کړئ.
- مثالونه: د ډیزاین ځینې پیژندل شوي نمونې د سنگلټون، فابریکې میتود، او اډاپټر نمونې شاملې دي.
- خوندیتوب: د ډیزاین نمونې ازمول شوي او د ټولنې لخوا په پراخه کچه منل شوي، دوی د تعقیب لپاره خوندي کوي.
- سالم اصول:
- عمومي لارښوونې: د سولیډ اصول د لوړې کچې لارښوونې دي چې د ښه سافټویر ډیزاین خبر ورکوي.
- د توزیع وړ جوړښت: دوی د توزیع کولو ، ساتلو وړتیا او لوستلو وړتیا باندې تمرکز کوي.
- د ژبې پابند نه دي: د سولیډ اصول په کوم ځانګړي پروګرامینګ ژبه پورې تړلي ندي.
- مثالونه:
- د واحد مسؤلیت اصول (SRP): یو ټولګي باید د بدلون لپاره یوازې یو دلیل ولري.
- د خلاص / تړلو اصول (OCP): د سافټویر ادارې باید د تمدید لپاره خلاص وي مګر د ترمیم لپاره بند وي.
- د لیسکوف بدیل اصول (LSP): فرعي ډولونه باید د دوی د اساس ډولونو سره د بدلولو وړ وي.
- د انٹرفیس جلا کولو اصول (ISP): پیرودونکي باید مجبور نه شي چې په انٹرفیسونو تکیه وکړي چې دوی یې نه کاروي.
- د انحصاري انعطاف اصول (DIP): د لوړې کچې ماډلونه باید د ټیټې کچې ماډلونو پورې اړه ونلري. دواړه باید په خلاصون پورې اړه ولري.
په لنډیز کې، ډیزاین نمونې ځانګړي حلونه وړاندې کوي، پداسې حال کې چې د SOLID اصول د غوره سافټویر ډیزاین لپاره عمومي لارښوونې وړاندې کوي
د ډیزاین نمونو کارولو ګټې
- د بیا کارولو وړتیا: ډیزاین نمونې د بیا کارونې وړ حلونه دي چې په ډیری پروژو کې پلي کیدی شي. د رامینځته شوي نمونو په کارولو سره ، پراختیا کونکي وخت او هڅې خوندي کوي ، ځکه چې دوی اړتیا نلري د عام ستونزو لپاره څرخ بیا ایجاد کړي.
- Defiد معمارۍ قوم: ډیزاین نمونې مرسته کوي defiد سافټویر سیسټم جوړښت اصلاح کړئ. دوی د ځانګړو ډیزاین ننګونو حل کولو لپاره یو منظم چلند چمتو کوي، د ثبات او ساتلو ډاډ ورکوي.
- FlessibilitÃ: کينډۍ د بدلون د اړتياوو سره سمون کې انعطاف ته اجازه ورکوي. کله چې نوي ځانګړتیاوې یا بدلون ته اړتیا وي، پراختیا کونکي کولی شي د ټول سیسټم ګډوډولو پرته موجوده ټیمپلیټونه تعدیل یا پراخ کړي.
د ډیزاین نمونو کارولو زیانونه
- د زده کړې وکر: د ډیزاین نمونو پوهیدل او پلي کول پوهه او تجربې ته اړتیا لري. نوي جوړونکي ممکن د مفاهیمو په پوهیدو کې ستونزمن وي او د ورکړل شوې ستونزې لپاره سم ماډل غوره کړي.
- زیات استعمال: په اسانۍ سره د ډیزاین نمونو شتون کولی شي د غلط فهمۍ لامل شي چې ټولې ستونزې د موجوده نمونو په کارولو سره حل کیدی شي. د ټیمپلیټونو ډیر کارول کولی شي خلاقیت محدود کړي او د غوره او نوښت حلونو لټون مخه ونیسي.
- پیچلتیا- ځینې ډیزاین نمونې د کوډ بیس کې اضافي پیچلتیا معرفي کوي. پراختیا کونکي باید په مؤثره توګه د نمونو کارولو او د پوهیدو وړ کوډ کولو ترمینځ توازن ومومي.
په لنډیز کې، د ډیزاین نمونې د بیا کارونې، معمارۍ او انعطاف وړ شرایطو کې د پام وړ ګټې وړاندې کوي، مګر د دوی کارول باید قضاوت وي ترڅو د غیر ضروري پیچلتیا مخه ونیسي او خلاقیت ته وده ورکړي.
په لارویل کې د ډیزاین نمونې بیلګه: سنگلټن
د سنگلټن ډیزاین نمونه ډاډ ورکوي چې ټولګي یوازې یو مثال لري او د ننوتلو یو واحد ټکی چمتو کوي. په Laravel کې، دا ماډل اکثرا د سرچینو اداره کولو لپاره کارول کیږي لکه د ډیټابیس اتصال یا ترتیب ترتیبات.
دلته په پی ایچ پی کې د سنگلټون نمونې پلي کولو بنسټیز مثال دی:
<؟php
ټولګي سنگلټون {
شخصي جامد $ مثال = null؛
شخصي فعالیت __construct() {
// د مستقیم انسټاګرام مخنیوي لپاره شخصي جوړونکی
}
عامه جامد فعالیت getInstance(): self {
که (نال === ځان::$ مثال) {
ځان::$ مثال = نوی ځان()؛
}
ځان بیرته راګرځول::$ مثال؛
}
// نور میتودونه او ملکیتونه دلته اضافه کیدی شي
}
// کارول:
$singletonInstance = Singleton::getInstance();
// اوس تاسو د سنگلټون ټولګي یوه بیلګه لرئ
// په لارویل کې د کارونې مثال:
$database = DB::connection('mysql');
// د ډیټابیس پیوستون مثال ترلاسه کړئ (سنگلټن)
د نمونې کوډ کې:
- د سنگلټون ټولګي یو شخصي جوړونکی لري ترڅو د مستقیم انسټاګرام مخه ونیسي؛
- د getInstance() میتود تضمین کوي چې د ټولګي یوازې یوه بیلګه شتون لري؛
- تاسو کولی شئ د اړتیا سره سم د سنگلټون ټولګي ته نور میتودونه او ملکیتونه اضافه کړئ؛
د Laravel خدمت کانټینر د ټولګي انحصار اداره کولو او د انحصار انجیکشن ترسره کولو لپاره د سنگلټن نمونه هم کاروي. که تاسو په Laravel کې کار کوئ، د دې خدماتو کانټینر کارولو ته پام وکړئ او خپل ټولګي د خدماتو چمتو کونکي سره د نورو پرمختللو کارولو قضیو لپاره راجستر کړئ.
Ercole Palmeri
د ۲۰۱۷ د اپرېل ۱۹ د ماښام ۵:۵۳ بجې