شما به این ویدیو دسترسی ندارید

دیزاین پترن factory این امکان رو به ما میده که بتونیم superclass بسازیم که مسئول ساخت object باشه و به subclass اجازه بدیم که بتونن نوع آبجکتی که ساخته میشه رو تغییر بدن

پیش نیاز:

abstract



0

intro

4:28

رایگان

1

Singleton

13:3

رایگان

2

Factory

17:9

4

Prototype

12:39

5

Builder

18:8

6

Adapter

8:31

7

Decorator

15:6

8

Facade

10:4

9

Proxy

11:36

10

Composite

16:10

11

Bridge

19:14

13

Command

21:2

14

Observer

13:17

15

Mediator

19:34

16

Template Method

8:28

17

Strategy

10:32

18

State

14:26

19

Memento

26:14

20

Visitor

18:57

دوره های پیشنهادی

دوره آموزش GraphQL در پایتون
دوره آموزش GraphQL در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش numpy پایتون
دوره آموزش numpy پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش پایتون (python)
دوره آموزش پایتون (python)
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


علی

1 سال قبل پاسخ به نظر

سلام و خسته نباشید. راستش من نفهمیدم چرا باید از این دیزاین پترن استفاده کنیم وقتی میتونیم همچین کدی رو بجاش بزنیم؟

class Json:
def edit(self, file):
return f'Working on {file} Json ...'

class Xml:
def edit(self, file):
return f'Working on {file} Xml ...'

def client(file: str, format: str):
formats = {
'json': Json,
'xml': Xml,
}
result = formats[format]()
return result.edit(file)

print(client('show', 'json'))

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
خب این چیه نوشتی؟ :/
توی این کد چه دلیلی داشته که از کلاس استفاده کردی؟ هیچ استفاده از کلاس‌های نکردی.
دیزاین پترن‌ها برای زمانی هستند که کد بزرگی دارید.

سجاد تاج

1 سال قبل پاسخ به نظر

سلام وقت شما بخیر.
امیدورام سلامت تندرست باشید.

حقیقت بنده بیش از یک ماه پیش اکانت ویژه تهیه کرده بودم. و به علت قطعی اینترنت هفته های گذشته نتونستم این دوره رو بگیرم. چون سایت برام باز نمیشد. امروز متوجه شدم سایت باز میشه.
ایا امکان تمدید اکانت ویژه به‌صورت رایگان بخاطر قطعی ها اخیر میسر هست؟

ممنون میشم بنده رو راهنمایی کنید.
با تشکر

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
بهم ایمیل بزن

student

1 سال قبل پاسخ به نظر

سلام
توی مثال اول (که از abstract استفاده نشده) توی متد edit (کلاس B) اخرش اینو return میکنه:
return edit(file)
این قسمت نباید خود edit رو ریترن کنه؟
اخه انگار اینجوری داره دوباره متد رو صدا میزنه.

ارسال نظر



مهدی

1 سال قبل پاسخ به نظر

سلام و خیلی ممنون

ممنون میشم اگر لطف کنید و مابقی دیزاین پترن ها رو هم تدریس کنید

مثله همیشه عالی بودی

ارسال نظر



Mahdi

2 سال قبل پاسخ به نظر

در کال ادیت، حتی نیاز به متغییری به اسم پروداکت هم نداریم!
مستقیم پشت سر هم ریترنش میکنیم:
def _call_edit(self):
return self.make().edit()
الان این کد همون نتیجه رو میده!
راستی درباره ی صدا زدن متود ها پش سر هم اگر یک ویدئو بسازی خیلی عالی میشه. من بصورت تجربی میدونستم کار میکنه ولی علت دقیقش رو هنوز نمیدونم.

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

خوانایی کد رو فدای کوتاه بودن نکن

Mahdi

2 سال قبل پاسخ به نظر

سلام امیر
در قسمت کریتور، چه نیازی بود که بیای بریزی داخل ریزالت و بعد ریترن کنی ریزالتو!!!
خب درجا متود ادیت داخل متود پروداکت رو ریترن کنیم دیگه:
def _call_edit(self):
product = self.make()
# result = product.edit()
# return result
return product.edit()

فکر نکنم به مشکلی منطقی برخورد کنیم.
من تست کردم و همه چی درست کار میکرد.

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
بله. حق با شماست

مونگارد