در این مطلب، ویدئو شماره 3: اصول طراحی جامد با پایتون | درک اصل بسته باز | OCP با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:10:15
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,420 –> 00:00:03,570
[موسیقی]
2
00:00:04,250 –> 00:00:07,140
هنگامی که مفهوم
3
00:00:07,140 –> 00:00:09,809
اصل مسئولیت واحد را فهمیدیم، اکنون اجازه
4
00:00:09,809 –> 00:00:11,759
دهید سعی کنیم اصل بعدی را
5
00:00:11,759 –> 00:00:14,880
در اصول مستحکم درک کنیم که باز و
6
00:00:14,880 –> 00:00:17,789
نزدیک به اصل است، بنابراین آنچه که باز کردن، بسته
7
00:00:17,789 –> 00:00:20,340
اصلی است، به این معنی است که فقط
8
00:00:20,340 –> 00:00:22,980
به یاد داشته باشید که هر زمان که نرم افزار
9
00:00:22,980 –> 00:00:26,160
موجودات ما را تشکیل می دهد. برای مثال
10
00:00:26,160 –> 00:00:30,150
توابع ماژول های کلاس ها را ایجاد کنید و غیره باید
11
00:00:30,150 –> 00:00:33,829
برای توسعه باز باشد اما برای
12
00:00:33,829 –> 00:00:37,590
اصلاحات بسته باشد. بات رند مایر یا
13
00:00:37,590 –> 00:00:40,280
جن این اصطلاح را در کتاب
14
00:00:40,280 –> 00:00:42,920
ساخت نرم افزار شی گرا خود به کار بردند،
15
00:00:42,920 –> 00:00:45,780
معمولاً هر زمان که نیاز جدیدی
16
00:00:45,780 –> 00:00:49,410
برای ایجاد برخی تغییرات دریافت می کنیم
17
00:00:49,410 –> 00:00:52,620
، رایج ترین رویکرد این است که
18
00:00:52,620 –> 00:00:55,410
کد موجود را باز کنیم و سعی
19
00:00:55,410 –> 00:00:58,500
کنیم تعریف روش را اصلاح کنیم.
20
00:00:58,500 –> 00:01:01,469
به عنوان مثال در ماژول اول ما اگر
21
00:01:01,469 –> 00:01:03,600
به یاد داشته باشید در مورد برخی از
22
00:01:03,600 –> 00:01:07,020
حساب ها به عنوان مثال درست مانند پس انداز در
23
00:01:07,020 –> 00:01:09,990
حساب های جاری و غیره صحبت کردیم و
24
00:01:09,990 –> 00:01:12,630
روشی مانند برداشت وجود داشت که در آن
25
00:01:12,630 –> 00:01:16,080
چندین بررسی شرایط داشتیم، بنابراین اگر
26
00:01:16,080 –> 00:01:18,420
چنین نیازی در تصویر ظاهر شود،
27
00:01:18,420 –> 00:01:22,500
باید همیشه به یاد داشته باشیم که ما
28
00:01:22,500 –> 00:01:24,439
نباید عملکرد موجود را تغییر دهیم،
29
00:01:24,439 –> 00:01:28,259
اما در عوض باید
30
00:01:28,259 –> 00:01:31,680
بتوانیم برنامه خود را گسترش دهیم تا
31
00:01:31,680 –> 00:01:34,619
نیاز یا تغییرات جدید را برآورده کند،
32
00:01:34,619 –> 00:01:38,280
اما با این عبارت معمولاً
33
00:01:38,280 –> 00:01:41,759
شک داریم که چرا باید کد برای تغییرات بسته شود،
34
00:01:41,759 –> 00:01:44,880
دلیل آن بسیار
35
00:01:44,880 –> 00:01:48,479
ساده است، احتمال کمتری دارد. برای تغییر
36
00:01:48,479 –> 00:01:51,509
کد، احتمال کمتری وجود دارد که
37
00:01:51,509 –> 00:01:54,780
باگهای جدید در کد موجود ایجاد شود و
38
00:01:54,780 –> 00:01:57,960
همچنین مجدداً نصب نمیکنیم. همان کد
39
00:01:57,960 –> 00:02:00,149
دوباره و دوباره و همچنین مزیت دیگری
40
00:02:00,149 –> 00:02:02,969
که گاهی اوقات
41
00:02:02,969 –> 00:02:05,000
ایجاد تغییرات یا اصلاحات
42
00:02:05,000 –> 00:02:08,580
برای ما به ارمغان میآورد ممکن است زمانی که
43
00:02:08,580 –> 00:02:11,489
باید بهروزرسانیها را اجرا کنیم، کد وابسته را شکسته و اگر
44
00:02:11,489 –> 00:02:13,620
توسعهدهندهای در حال تماشای این
45
00:02:13,620 –> 00:02:15,540
دوره است، ممکن است عملاً این نوع
46
00:02:15,540 –> 00:02:18,300
مشکلات را مشاهده کرده باشد. در تاریخ کاری دوست عزیز،
47
00:02:18,300 –> 00:02:22,050
ممکن است شک دیگری داشته باشیم اگر
48
00:02:22,050 –> 00:02:25,050
عملکرد موجود دارای اشکال
49
00:02:25,050 –> 00:02:28,019
باشد، آنچه باید انجام دهیم به یاد
50
00:02:28,019 –> 00:02:30,959
داشته باشید که اصلاح تعریف برای رفع
51
00:02:30,959 –> 00:02:33,660
اشکال اشکالی ندارد، اما برای نیازهای جدید و
52
00:02:33,660 –> 00:02:36,360
تغییرات در نیاز
53
00:02:36,360 –> 00:02:39,000
موجود، همیشه توصیه می شود. برای پیروی از این
54
00:02:39,000 –> 00:02:42,090
اصل، اکنون اجازه دهید
55
00:02:42,090 –> 00:02:44,790
رویکردهای معمولی را که
56
00:02:44,790 –> 00:02:48,739
باید برای نوشتن کد با استفاده از OCP دنبال کنیم، درک کنیم به
57
00:02:48,739 –> 00:02:51,540
یاد داشته باشید که ما سه نوع
58
00:02:51,540 –> 00:02:54,420
روش یا رویکرد داریم که میتوانیم
59
00:02:54,420 –> 00:02:57,599
برای دستیابی به اصول باز نزدیک به اصول اول
60
00:02:57,599 –> 00:03:00,989
از همه از پارامترها استفاده کنیم. انتقال
61
00:03:00,989 –> 00:03:03,450
آرگومان های مختلف به یک تابع یا
62
00:03:03,450 –> 00:03:06,810
متد و بر اساس مقدار پارامتر
63
00:03:06,810 –> 00:03:08,610
می توانیم رفتار آن را تغییر دهیم.
64
00:03:08,610 –> 00:03:11,190
سادهترین
65
00:03:11,190 –> 00:03:13,890
رویکردها و اکثر فریشها
66
00:03:13,890 –> 00:03:17,099
معمولاً از این روش پیروی میکنند، اما
67
00:03:17,099 –> 00:03:20,579
مشکل اینجاست که اگر نیاز جدیدی
68
00:03:20,579 –> 00:03:23,579
وجود داشته باشد یا تغییری در منطق کسبوکار ایجاد
69
00:03:23,579 –> 00:03:26,160
شود، این
70
00:03:26,160 –> 00:03:28,680
راهحل مناسبی نخواهد بود و ارث دوم متدیست
71
00:03:28,680 –> 00:03:33,060
از بسیاری از الگوهای طراحی استفاده میکند.
72
00:03:33,060 –> 00:03:36,180
رویکردهای ارثی مختلف برای
73
00:03:36,180 –> 00:03:40,739
تسهیل OCP معمولاً هر زمان که یک نیاز جدید دریافت می کنیم
74
00:03:40,739 –> 00:03:43,440
در این مورد به جای
75
00:03:43,440 –> 00:03:46,919
اصلاح کلاس موجود، کلاس موجود را به ارث می بریم
76
00:03:46,919 –> 00:03:49,260
77
00:03:49,260 –> 00:03:51,870
و تعریف
78
00:03:51,870 –> 00:03:55,349
مورد نیاز جدید را در زیر کلاس ارائه می دهیم و
79
00:03:55,349 –> 00:03:57,930
همچنین شامل اجازه دادن به ادعاها برای
80
00:03:57,930 –> 00:04:00,989
ارائه می شود. تعریف جدید با نادیده
81
00:04:00,989 –> 00:04:03,660
گرفتن متد انتزاعی از
82
00:04:03,660 –> 00:04:06,690
کلاس انتزاعی و روش دوم
83
00:04:06,690 –> 00:04:09,540
بهترین روش یا رویکرد برای
84
00:04:09,540 –> 00:04:13,769
دستیابی به OCP در اکثر موارد است و
85
00:04:13,769 –> 00:04:15,959
اگر به یاد داشته باشید که ما در ماژول اول خود این کار را انجام داده ایم به این
86
00:04:15,959 –> 00:04:18,570
معنی است که یک کلاس انتزاعی ایجاد کرده ایم.
87
00:04:18,570 –> 00:04:20,959
با نام حساب
88
00:04:20,959 –> 00:04:23,940
و تعاریف متعددی برای
89
00:04:23,940 –> 00:04:27,090
متد Vedra از زیر کلاسی
90
00:04:27,090 –> 00:04:29,220
که به عنوان مثال fo
91
00:04:29,220 –> 00:04:32,100
اصل باز-بسته را مجاز میداند، اما ما
92
00:04:32,100 –> 00:04:34,320
از این نکته آگاه نیستیم که
93
00:04:34,320 –> 00:04:37,229
در آن زمان از اصل بسته-باز پیروی میکنیم،
94
00:04:37,229 –> 00:04:40,199
خوب حالا رویکرد
95
00:04:40,199 –> 00:04:43,710
سوم استفاده از ترکیب یا تزریق است
96
00:04:43,710 –> 00:04:46,440
که به جای ارائه منطق
97
00:04:46,440 –> 00:04:48,600
در کلاس، ما باید
98
00:04:48,600 –> 00:04:51,990
منطق در نوع دیگری به کلاس
99
00:04:51,990 –> 00:04:54,600
ارجاع می دهد و به جای کدگذاری سخت
100
00:04:54,600 –> 00:04:57,090
مرجع به نوع دیگر
101
00:04:57,090 –> 00:04:59,430
ارجاعات از طریق تکنیکی
102
00:04:59,430 –> 00:05:02,310
به نام تزریق وابستگی ارائه می شود و من
103
00:05:02,310 –> 00:05:04,650
با جزئیات بیشتر در مورد این موضوع بحث خواهم کرد و در
104
00:05:04,650 –> 00:05:06,840
مورد اصل پنجم
105
00:05:06,840 –> 00:05:09,990
به صورت جامد که وارونگی وابستگی است بحث خ