شما به این ویدیو دسترسی ندارید
دیزاین پترن factory این امکان رو به ما میده که بتونیم superclass بسازیم که مسئول ساخت object باشه و به subclass اجازه بدیم که بتونن نوع آبجکتی که ساخته میشه رو تغییر بدن
پیش نیاز:
شما به این ویدیو دسترسی ندارید
دیزاین پترن factory این امکان رو به ما میده که بتونیم superclass بسازیم که مسئول ساخت object باشه و به subclass اجازه بدیم که بتونن نوع آبجکتی که ساخته میشه رو تغییر بدن
پیش نیاز:
سلام و خسته نباشید. راستش من نفهمیدم چرا باید از این دیزاین پترن استفاده کنیم وقتی میتونیم همچین کدی رو بجاش بزنیم؟
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'))
سلام
خب این چیه نوشتی؟ :/
توی این کد چه دلیلی داشته که از کلاس استفاده کردی؟ هیچ استفاده از کلاسهای نکردی.
دیزاین پترنها برای زمانی هستند که کد بزرگی دارید.
سلام وقت شما بخیر.
امیدورام سلامت تندرست باشید.
حقیقت بنده بیش از یک ماه پیش اکانت ویژه تهیه کرده بودم. و به علت قطعی اینترنت هفته های گذشته نتونستم این دوره رو بگیرم. چون سایت برام باز نمیشد. امروز متوجه شدم سایت باز میشه.
ایا امکان تمدید اکانت ویژه بهصورت رایگان بخاطر قطعی ها اخیر میسر هست؟
ممنون میشم بنده رو راهنمایی کنید.
با تشکر
سلام
بهم ایمیل بزن
سلام
توی مثال اول (که از abstract استفاده نشده) توی متد edit (کلاس B) اخرش اینو return میکنه:
return edit(file)
این قسمت نباید خود edit رو ریترن کنه؟
اخه انگار اینجوری داره دوباره متد رو صدا میزنه.
سلام و خیلی ممنون
ممنون میشم اگر لطف کنید و مابقی دیزاین پترن ها رو هم تدریس کنید
مثله همیشه عالی بودی
در کال ادیت، حتی نیاز به متغییری به اسم پروداکت هم نداریم!
مستقیم پشت سر هم ریترنش میکنیم:
def _call_edit(self):
return self.make().edit()
الان این کد همون نتیجه رو میده!
راستی درباره ی صدا زدن متود ها پش سر هم اگر یک ویدئو بسازی خیلی عالی میشه. من بصورت تجربی میدونستم کار میکنه ولی علت دقیقش رو هنوز نمیدونم.
خوانایی کد رو فدای کوتاه بودن نکن
سلام امیر
در قسمت کریتور، چه نیازی بود که بیای بریزی داخل ریزالت و بعد ریترن کنی ریزالتو!!!
خب درجا متود ادیت داخل متود پروداکت رو ریترن کنیم دیگه:
def _call_edit(self):
product = self.make()
# result = product.edit()
# return result
return product.edit()
فکر نکنم به مشکلی منطقی برخورد کنیم.
من تست کردم و همه چی درست کار میکرد.
سلام
بله. حق با شماست
ارسال نظر
برای ارسال نظر باید لاگین کنید