در این مطلب، ویدئو الگوی طراحی کارخانه – آموزش پیشرفته پایتون شماره 7 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:23
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,230 –> 00:00:09,200
[موسیقی]
2
00:00:09,200 –> 00:00:10,639
چه اتفاقی می افتد بچه ها به
3
00:00:10,639 –> 00:00:12,559
سری آموزش های پایتون برای
4
00:00:12,559 –> 00:00:14,160
برنامه نویسان پیشرفته خوش آمدید در ویدیوی امروز ما در
5
00:00:14,160 –> 00:00:16,160
مورد الگوی طراحی کارخانه صحبت خواهیم کرد،
6
00:00:16,160 –> 00:00:18,400
بنابراین اجازه دهید مستقیماً وارد آن شویم
7
00:00:18,400 –> 00:00:20,160
تا الگوی طراحی کارخانه فقط
8
00:00:20,160 –> 00:00:22,080
یکی از چندین مورد باشد.
9
00:00:22,080 –> 00:00:23,519
-الگوهای طراحی شی گرا و هدف از چنین
10
00:00:23,519 –> 00:00:25,279
الگوی طراحی شی گرا
11
00:00:25,279 –> 00:00:26,960
معمولاً فقط افزایش
12
00:00:26,960 –> 00:00:29,199
مدولار بودن برای افزایش به اصطلاح
13
00:00:29,199 –> 00:00:31,599
جداسازی نگرانی ها است که اساساً
14
00:00:31,599 –> 00:00:32,800
به این معنی است که ما می خواهیم
15
00:00:32,800 –> 00:00:34,880
تک تک قطعات برنامه را داشته باشیم
16
00:00:34,880 –> 00:00:37,760
که فرد به فرد کلاس می دهد.
17
00:00:37,760 –> 00:00:38,719
ماژولها
18
00:00:38,719 –> 00:00:41,200
فکر میکنند که کسبوکار خودشان کار خودشان را انجام میدهند
19
00:00:41,200 –> 00:00:43,680
و در آن کار بسیار خوب هستند
20
00:00:43,680 –> 00:00:45,600
و الگوی طراحی کارخانه یکی از
21
00:00:45,600 –> 00:00:47,680
این الگوها است که به ما اجازه میدهد این کار را انجام دهیم
22
00:00:47,680 –> 00:00:49,200
و زمانی که میخواهیم
23
00:00:49,200 –> 00:00:50,160
24
00:00:50,160 –> 00:00:53,039
در طول زمان اجرا تصمیم بگیریم چه نمونه خاصی را
25
00:00:53,039 –> 00:00:54,719
میخواهیم ایجاد کنیم بسیار مفید است. فرض کنید
26
00:00:54,719 –> 00:00:56,079
برای مثال
27
00:00:56,079 –> 00:00:58,239
یک فرد انتزاعی رابط یک
28
00:00:58,239 –> 00:00:59,359
کلاس شخص انتزاعی
29
00:00:59,359 –> 00:01:01,039
داریم و سپس میخواهیم دانشآموزان
30
00:01:01,039 –> 00:01:02,640
و معلمانی داشته باشیم که هر دو به وضوح یک نفر هستند.
31
00:01:02,640 –> 00:01:03,680
32
00:01:03,680 –> 00:01:05,680
اما نمیخواهیم در کد تصمیم بگیریم
33
00:01:05,680 –> 00:01:07,520
که میخواهم معلمی بسازم یا
34
00:01:07,520 –> 00:01:08,479
دانشآموزی ایجاد
35
00:01:08,479 –> 00:01:10,159
میکنم، میخواهیم آن را به صورت پویا در طول
36
00:01:10,159 –> 00:01:11,680
زمان اجرا بسازیم، بنابراین میدانم که میخواهم یک
37
00:01:11,680 –> 00:01:12,080
38
00:01:12,080 –> 00:01:14,159
شی شخص ایجاد کنم، اما نمیدانم در حالی که من
39
00:01:14,159 –> 00:01:15,840
اگر میخواهم
40
00:01:15,840 –> 00:01:17,520
دانشآموزی در اینجا داشته باشم یا معلمی که میخواهیم
41
00:01:17,520 –> 00:01:19,119
در زمان اجرا تصمیم بگیریم، در حال نوشتن کد هستم
42
00:01:19,119 –> 00:01:20,560
و اگر میخواهیم این کار را انجام دهیم، میتوانیم از
43
00:01:20,560 –> 00:01:22,400
الگوی کارخانه برای انجام این کار استفاده کنیم،
44
00:01:22,400 –> 00:01:24,159
اما چیزی که باید در
45
00:01:24,159 –> 00:01:26,080
اینجا به خاطر بسپارید این است که اینکه آن الگوهای طراحی
46
00:01:26,080 –> 00:01:26,640
معمولی
47
00:01:26,640 –> 00:01:29,200
هستند معمولاً فقط در صورتی مفید هستند که از آنها
48
00:01:29,200 –> 00:01:30,720
در پروژههای بزرگتر استفاده کنید، بنابراین نمیخواهید
49
00:01:30,720 –> 00:01:32,880
از آنها در اسکریپت پایتون 50 خطی خود استفاده کنید، بلکه
50
00:01:32,880 –> 00:01:34,880
میخواهید از آنها در
51
00:01:34,880 –> 00:01:36,640
برنامههای بزرگ استفاده کنید، جایی که چندین
52
00:01:36,640 –> 00:01:38,720
کلاس و چندین فایل پایتون دارید و
53
00:01:38,720 –> 00:01:40,720
ماژول ها با هم کار می کنند
54
00:01:40,720 –> 00:01:42,000
زیرا در غیر این صورت آنها فقط در حال
55
00:01:42,000 –> 00:01:44,240
افزایش هستند، این جنبه منفی
56
00:01:44,240 –> 00:01:46,079
چنین الگوی طراحی است.
57
00:01:46,079 –> 00:01:47,759
58
00:01:47,759 –> 00:01:49,840
59
00:01:49,840 –> 00:01:52,799
60
00:01:52,799 –> 00:01:54,799
61
00:01:54,799 –> 00:01:56,560
اگر شما یک هیچ چیز خارج از آن
62
00:01:56,560 –> 00:01:59,040
نیست، بنابراین بیایید فقط به یک مثال در اینجا نگاه
63
00:01:59,040 –> 00:02:00,079
کنیم، فرض کنیم که
64
00:02:00,079 –> 00:02:02,560
یک فرد کلاس انتزاعی داریم، بنابراین برای این باید
65
00:02:02,560 –> 00:02:03,280
66
00:02:03,280 –> 00:02:07,759
از abc که مخفف کلاس abstract
67
00:02:07,759 –> 00:02:10,959
import abc meta
68
00:02:10,959 –> 00:02:14,720
69
00:02:14,720 –> 00:02:17,120
و روش abstract static است، بگوییم.
70
00:02:17,120 –> 00:02:18,879
قرار است یک رابط شخص ایجاد کنیم، بنابراین
71
00:02:18,879 –> 00:02:19,599
میخواهیم بگوییم
72
00:02:19,599 –> 00:02:23,599
شخص کلاس و یک نماد که
73
00:02:23,599 –> 00:02:24,720
بهترین عمل است
74
00:02:24,720 –> 00:02:26,640
یا قرارداد این است که اگر چیزی یک
75
00:02:26,640 –> 00:02:28,640
رابط است زیرا در پایتون نمیتوانیم
76
00:02:28,640 –> 00:02:30,319
فقط بگوییم شخص رابط
77
00:02:30,319 –> 00:02:32,239
اگر چیزی یک رابط است، آن را
78
00:02:32,239 –> 00:02:34,000
i مینامیم. به هر حال
79
00:02:34,000 –> 00:02:36,160
من در این مورد و در اینجا می
80
00:02:36,160 –> 00:02:38,319
خواهیم بگوییم متا برابر با
81
00:02:38,319 –> 00:02:40,720
abc meta است که اساساً به این معنی است که
82
00:02:40,720 –> 00:02:42,480
این یک کلاس انتزاعی است که ما نمی توانیم
83
00:02:42,480 –> 00:02:44,160
هیچ نمونه ای از آن ایجاد
84
00:02:44,160 –> 00:02:45,840
کنیم، در یک ثانیه خواهیم دید که معنی آن چیست
85
00:02:45,840 –> 00:02:47,360
و سپس ما
86
00:02:47,360 –> 00:02:50,400
میخواهیم بگوییم روش استاتیک انتزاعی و میتوانیم بگوییم
87
00:02:50,400 –> 00:02:51,760
برای مثال
88
00:02:51,760 –> 00:02:54,239
روش افراد ناشنوا این فقط یک
89
00:02:54,239 –> 00:02:55,120
روش اساسی است
90
00:02:55,120 –> 00:02:57,200
که هر فردی باید آن را پیادهسازی کند
91
00:02:57,200 –> 00:02:58,319
البته این فقط
92
00:02:58,319 –> 00:03:00,640
یک مثال انتزاعی است در اینجا ما نیستیم
93
00:03:00,640 –> 00:03:02,319
شما میتوانید بگویید برای به عنوان مثال،
94
00:03:02,319 –> 00:03:04,560
این فردی است که پیر می شود یا شخصی
95
00:03:04,560 –> 00:03:06,640
که در حال مطالعه است یا شخصی که کاری انجام می دهد
96
00:03:06,640 –> 00:03:08,720
این فقط یک عملکرد اساسی است
97
00:03:08,720 –> 00:03:10,159
و در اینجا ما فقط یک نظر اضافه می کنیم
98
00:03:10,159 –> 00:03:11,920
که این
99
00:03:11,920 –> 00:03:14,239
یک روش رابط است زیرا
100
00:03:14,239 –> 00:03:16,000
رابط
101
00:03:16,000 –> 00:03:18,640
کاربری اساساً این است که یک رابط چیست. فقط یک
102
00:03:18,640 –> 00:03:19,519
تعریف
103
00:03:19,519 –> 00:03:21,599
از امضا است، بنابراین ما می دانیم خوب است
104
00:03:21,599 –> 00:03:23,280
که ما آن توابع را در آن
105
00:03:23,280 –> 00:03:25,040
متدها خواهیم داشت، اما ما نمی خواهیم بگوییم که
106
00:03:25,040 –> 00:03:26,400
آنها واقعا چه کاری انجام می دهند،
107
00:03:26,400 –> 00:03:28,560
بنابراین این فقط ذکر این است که هر
108
00:03:28,560 –> 00:03:30,640
فرد باید متد شخص را پیاده سازی کند،
109
00:03:30,640 –> 00:03:31,680
110
00:03:31,680 –> 00:03:33,760
بنابراین ما می بینم که این کار نمی
111
00:03:33,760 –> 00:03:34,799
کند زیرا اگر اکنون
112
00:03:34,799 –> 00:03:38,319
بگویم p1 برابر است با i person
113
00:03:38,319 –> 00:03:40,959
به عنوان مثال مانند آن و سپس روش p1 dot
114
00:03:40,959 –> 00:03:42,720
person یا چیزی
115
00:03:42,720 –> 00:03:45,200
اوم اکنون این را می نویسم ، خواهیم دید
116
00:03:45,200 –> 00:03:46,000
که این
117
00:03:46,000 –> 00:03:48,799
امکان پذیر نیست زیرا این یک
118
00:03:48,799 –> 00:03:50,799
کلاس انتزاعی ما نمی توانیم فقط جلو برویم و
119
00:03:50,799 –> 00:03:53,439
اوه در واقع یک چیزی که من در اینجا اشتباه کردم
120
00:03:53,439 –> 00:03:54,959
کلاس mata
121
00:03:54,959 –> 00:03:57,120
abc meta است پس این کار نمی کند
122
00:03:57,120 –> 00:03:58,879
اوه این اساساً به این معنی است که ما در حال
123
00:03:58,879 –> 00:04:00,239
ایجاد کلاس انتزاعی هستیم و
124
00:04:00,239 –> 00:04:02,080
تعریف کلاس انتزاعی این است که
125
00:04:02,080 –> 00:04:02,959
ما نمیتوان
126
00:04:02,959 –> 00:04:05,599
نمونههایی از آن ایجاد کرد، بنابراین میخواهید
127
00:04:05,599 –> 00:04:07,599
اینجا ببینید که ما
128
00:04:07,599 –> 00:04:09,760
129
00:04:09,760 –> 00:04:11,439
با روشهای انتزاعی با خطای کلاس انتزاعی i person مواجه میشویم، نمیتوانیم آن را
130
00:04:11,439 –> 00:04:13,360
نمونهسازی کنیم و
131
00:04:13,360 –> 00:04:14,480
132
00:04:14,480 –> 00:04:18,000
اگر من اکنون ادامه دهم و python را اجرا
133
00:04:18,000 –> 00:04:21,199
کنم، ترمینال را خواهیم دید. اینجا اتفاق میافتد،
134
00:04:21,199 –> 00:04:24,800
خب، من قبلاً اینجا قرار میدادم،
135
00:04:25,759 –> 00:04:28,800
اجازه دهید این سریع را پاک
136
00:04:28,800 –> 00:04:33,120
کنم، شما بروید python3
137
00:04:33,120 –> 00:04:35,120
main.py میتوانید ببینید که من نمیتوانم
138
00:04:35,120 –> 00:04:37,199
کلاس انتزاعی
139
00:04:37,199 –> 00:04:40,000
140
00:04:40,000 –> 00:04:41,199
141
00:04:41,199 –> 00:04:42,560
را مثال بزنم. داشتن
142
00:04:42,560 –> 00:04:44,720
دانش آموز کلاس دیگری
143
00:04:44,720 –> 00:04:47,280
که قرار است از این رابط iperson به ارث ببرد،
144
00:04:47,280 –> 00:04:48,960
این
145
00:04:48,960 –> 00:04:50,800
رابط آیپرسون را پیاده سازی می کند
146
00:04:50,800 –> 00:04:52,479
و
147
00:04:52,479 –> 00:04:54,080
اگر من این کار را انجام ندهم
148
00:04:54,080 –> 00:04:58,160
اگر فقط بگویم که def را نمی دانم، اکنون این روش را لغو می کنیم. uh
149
00:04:58,160 –> 00:05:00,400
init و من در اینجا یک سازنده اولیه
150
00:05:00,400 –> 00:05:01,280
دارم که نمیدانم
151
00:05:01,280 –> 00:05:05,280
نام خود نقطه برابر است با نام دانشآموز پایه
152
00:05:05,280 –> 00:05:08,720
، یک نام پیشفرض است، پس اگر
153
00:05:08,720 –> 00:05:09,199
154
00:05:09,199 –> 00:05:12,560
بخواهم بگویم s1 برابر است با student
155
00:05:13,199 –> 00:05:15,759
و یا در واقع فقط
156
00:05:15,759 –> 00:05:16,400
157
00:05:16,400 –> 00:05:18,320
نمیتوانیم ایجاد کنیم نمونه ای از دانش آموز
158
00:05:18,320 –> 00:05:20,160
چون دانش آموز انجام داد
159
00:05:20,160 –> 00:05:22,160
روش شخص متد استاتیک انتزاعی را بازنویسی نکنید،
160
00:05:22,160 –> 00:05:23,280