10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

ډیری وختونه زه د پراختیا کونکو سره وینم چې د سولیډ اصولو په اړه ندي اوریدلي (موږ د هغوی په اړه دلته په تفصیل سره خبرې وکړې. - ژباړه) یا د اعتراض پر بنسټ پروګرامونه (OOP)، یا یې اوریدلي، مګر په عمل کې یې مه کاروئ. دا مقاله د OOP اصولو ګټې بیانوي چې د پراختیا کونکي سره د هغه په ​​ورځني کار کې مرسته کوي. ځینې ​​یې ښه پیژندل شوي، نور یې دومره ندي، نو دا مقاله به د پیل کونکو او تجربه لرونکو پروګرام کونکو لپاره ګټور وي.

موږ یادونه کوو: د ټولو هابر لوستونکو لپاره - د 10 روبل تخفیف کله چې د هابر پروموشنل کوډ په کارولو سره د مهارت بکس کوم کورس کې نوم لیکنه وکړئ.

Skillbox وړاندیز کوي: تعلیمي آنلاین کورس "جاوا پرمخ وړونکی".

وچ (ځان مه تکراروئ)

یو خورا ساده اصول، د هغه جوهر د نوم څخه روښانه دی: "خپل ځان مه تکرار کړئ." د یو پروګرامر لپاره، دا پدې مانا ده چې د نقل کوډ څخه ډډه کول، او همدارنګه د دوی په کار کې د خلاصون کارولو فرصت.

که په کوډ کې دوه تکراري برخې شتون ولري، دوی باید په یوه میتود کې یوځای شي. که یو هارډ کوډ شوی ارزښت له یو ځل څخه ډیر کارول کیږي، نو دا د عامه ثابت لپاره د بدلولو ارزښت لري.

دا د دې لپاره اړین دی چې کوډ ساده کړي او ساتل یې اسانه کړي، کوم چې د OOP اصلي هدف دی. تاسو باید د اتحادیې څخه ډیر کار ونه کړئ، ځکه چې ورته کوډ به د OrderId او SSN دواړو سره تایید ونه کړي.

د تغییر وړ بدلونونه

د ډیری شرکتونو سافټویر محصولات په دوامداره توګه وده کوي. دا پدې مانا ده چې په کوډ کې بدلونونو ته اړتیا ده، دا باید ملاتړ وشي. تاسو کولی شئ د encapsulation په کارولو سره خپل ژوند اسانه کړئ. دا به تاسو ته اجازه درکړي چې ستاسو د موجوده کوډ اساس په ډیر اغیزمن ډول ازموینه او ساتنه وکړئ. دلته یو مثال دی.

که تاسو په جاوا کې لیکئ، نو شخصي میتودونه او متغیرونه د ډیفالټ په واسطه وټاکئ.

د خلاص او تړلو اصول

دا اصول د لاندې بیان په لوستلو سره په اسانۍ سره یاد کیدی شي: "د سافټویر ادارې (ټولګي، ماډلونه، دندې، او نور) باید د تمدید لپاره خلاص وي، مګر د تعدیل لپاره بند وي." په عمل کې، دا پدې مانا ده چې دوی کولی شي د سرچینې کوډ بدلولو پرته د دوی چلند بدل کړي.

اصول مهم دی کله چې د سرچینې کوډ کې بدلون د کوډ بیاکتنې، د واحد ازموینې، او نورو پروسیجرونو ته اړتیا لري. کوډ چې د خلاص / تړل شوي اصول تعقیبوي کله چې غزول کیږي بدلون نه کوي، نو د دې سره خورا لږ ستونزې شتون لري.

دلته د کوډ یوه بیلګه ده چې د دې اصول څخه سرغړونه کوي.

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

که تاسو په دې کې یو څه بدلولو ته اړتیا لرئ، دا به ډیر وخت ونیسي، ځکه چې د کوډ ټولې برخې چې د غوښتل شوي ټوټې سره اړیکه لري باید بدل شي.

د لارې په توګه، د خلاصون تړل د SOLID یو له اصولو څخه دی.

د واحد مسؤلیت اصول (SRP)

د SOLID سیټ څخه بل اصول. دا وايي چې "دلته یو لامل شتون لري چې په ټولګي کې د بدلون لامل کیږي." ټولګي یوازې یوه ستونزه حل کوي. دا ممکن ډیری میتودونه ولري، مګر هر یو یې یوازې د یوې ګډې ستونزې د حل لپاره کارول کیږي. ټول میتودونه او ملکیتونه باید یوازې دا خدمت وکړي.

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

د دې اصول ارزښت دا دی چې دا د انفرادي سافټویر اجزا او کوډ ترمنځ جوړه کول کموي. که تاسو په ټولګي کې له یو څخه زیات فعالیت اضافه کړئ، دا د دوو دندو ترمنځ اړیکه معرفي کوي. په دې توګه، که تاسو یو له دوی څخه بدل کړئ، د دویمې ویجاړولو ډیر چانس شتون لري، کوم چې د لومړي سره تړلی دی. او دا پدې معنی ده چې د ټولو ستونزو پیژندلو لپاره د ازموینې دورې زیاتول.

د انحصار د انعطاف اصول (DIP)

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

پورته د کوډ مثال دی چیرې چې AppManager په EventLogWriter پورې اړه لري ، کوم چې په پایله کې د AppManager سره نږدې دی. که تاسو د خبرتیا ښودلو لپاره بلې لارې ته اړتیا لرئ، دا فشار، SMS یا بریښنالیک وي، تاسو اړتیا لرئ د AppManager ټولګي بدل کړئ.

ستونزه د DIP په کارولو سره حل کیدی شي. نو ، د AppManager پرځای ، موږ د EventLogWriter غوښتنه کوو ، کوم چې به د چوکاټ په کارولو سره داخل شي.

DIP دا ممکنه کوي چې د انحصار ماډل بدلولو سره په اسانۍ سره انفرادي ماډلونه د نورو سره ځای په ځای کړي. دا دا ممکنه کوي چې یو ماډل بدل کړي پرته له دې چې په نورو اغیزه وکړي.

د میراث پر ځای ترکیب

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شيد کوډ د بیا کارولو لپاره دوه اصلي لارې شتون لري: میراث او جوړښت، چې دواړه یې خپلې ګټې او زیانونه لري. معمولا دوهم غوره کیږي ځکه چې دا ډیر انعطاف منونکی دی.

جوړښت تاسو ته د دې وړتیا درکوي چې د چلولو په وخت کې د ټولګي چلند د هغې د ملکیتونو په ترتیبولو سره بدل کړئ. کله چې د انٹرفیس پلي کول، پولیمورفیزم کارول کیږي، کوم چې ډیر انعطاف وړ تطبیق ورکوي.

حتی د جوشوا بلوچ لخوا اغیزمن جاوا د میراث په پرتله د ترکیب غوره کولو مشوره ورکوي.

باربرا لیسکوف د بدیل اصول (LSP)

د SOLID Toolkit څخه بل اصل. دا وايي چې فرعي ډولونه باید د سپر ډول لپاره بدیل وي. دا دی، میتودونه او دندې چې د سوپر کلاس سره کار کوي باید د دې وړتیا ولري چې پرته له دې فرعي ټولګیو سره کار وکړي.

LSP د واحد مسؤلیت اصول او د ګډ مسؤلیت اصول دواړه سره تړاو لري. که یو ټولګی د فرعي ټولګي په پرتله ډیر فعالیت چمتو کړي، نو وروستی به د دې اصولو څخه سرغړونه، د ځینې فعالیت ملاتړ ونه کړي.

دلته د کوډ یوه برخه ده چې د LSP سره مخالفت کوي.

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

د ساحې (مستطیل r) میتود د مستطیل مساحت محاسبه کوي. برنامه به د مربع اجرا کولو وروسته خرابه شي ځکه چې مربع دلته مستطیل ندی. د LSP اصولو سره سم، هغه افعال چې د بیس ټولګیو ته مراجعه کوي باید د اضافي لارښوونو پرته د اخستل شوي ټولګیو شیانو کارولو وړ وي.

دا اصول، چې د فرعي ډول یو ځانګړی تعریف دی، د باربرا لیسکوف لخوا د 1987 په کنفرانس کې وړاندیز شوی و چې عنوان یې "د معلوماتو خلاصول او درجه بندي،" له همدې امله نوم دی.

د انٹرفیس د ویش اصول (ISP)

بل سخت اصول. د هغې په وینا، یو انٹرفیس چې نه کارول کیږي باید پلي نشي. د دې اصولو تعقیب سیسټم سره مرسته کوي چې انعطاف منونکي پاتې شي او د ریفکتور کولو لپاره مناسب وي کله چې په عملیاتي منطق کې بدلونونه رامینځته شي.

ډیری وختونه ، دا حالت رامینځته کیږي کله چې انٹرفیس په یوځل کې ډیری دندې ولري ، او پیرودونکي یوازې له دوی څخه یو ته اړتیا لري.

څرنګه چې د انټرفیس لیکل یو ستونزمن کار دی، د کار بشپړیدو وروسته یې بدلول پرته له کوم شی ماتول به یوه ننګونه وي.

په جاوا کې د ISP اصولو ګټه دا ده چې ټولې میتودونه باید لومړی پلي شي ، او یوازې بیا دوی د ټولګیو لخوا کارول کیدی شي. له همدې امله، اصول دا ممکنه کوي چې د میتودونو شمیر کم کړي.

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

د انٹرفیس لپاره برنامه کول ، نه پلي کول

دلته هر څه د نوم څخه روښانه دي. د دې اصول پلي کول د انعطاف وړ کوډ رامینځته کولو لامل کیږي چې کولی شي د انٹرفیس هر نوي پلي کولو سره کار وکړي.

تاسو باید د متغیرونو، بیرته راستنیدو ډولونو، یا د میتود دلیل ډول لپاره د انٹرفیس ډول وکاروئ. یوه بیلګه د SubClass پرځای SuperClass کارول دي.

هغه دی:

د لیست شمیره = getNumbers();

مګر نه:

د سرې لیست شمیرې = getNumbers();

دلته د هغه څه عملي تطبیق دی چې پورته یې بحث شوی.

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

د پلاوي اصول

یو عام مثال په جاوا کې equals() او hashCode() میتودونه دي. کله چې د دوو شیانو پرتله کولو ته اړتیا وي، دا عمل د مراجعینو پر ځای اړونده ټولګي ته سپارل کیږي.

د اصولو ګټه دا ده چې د کوډ نقل نشته او د چلند بدلول نسبتا ساده دي. دا د پیښې پلاوي باندې هم پلي کیږي.

10 د اعتراض پر بنسټ د پروګرام کولو اصول هر پرمخ وړونکی باید پوه شي

دا ټول اصول تاسو ته اجازه درکوي چې ډیر انعطاف منونکي، ښکلي او د باور وړ کوډ د لوړ همغږۍ او ټیټ جوړونې سره ولیکئ. البته، تیوري ښه ده، مګر د پراختیا کونکي لپاره چې واقعیا ترلاسه شوي پوهه وکاروي، تمرین ته اړتیا ده. یوځل چې تاسو د OOP اصولو کې مهارت ترلاسه کړئ ، ستاسو بل ګام ممکن د سافټویر پراختیا عام ستونزو حل کولو لپاره ډیزاین نمونې زده کړئ.

Skillbox وړاندیز کوي:

سرچینه: www.habr.com

Add a comment