پیاده سازی Abstract Factory

پرسیده شده
فعالیت 1207 روز پیش
دیده شده 540 بار
1

سلام و احترام؛

یه سوالی که برام پیش اومده این هست که آیا واقعا نیاز هست مانند کدی که استاد برای الگوی AbstractFactory نوشتن اینقدر خرد شد  و یا همینکه بتونیم مفهوم رو پیاده سازی کنیم کافی است مثلا من برای تمرین، این کد زیر رو نوشتم و میخوام بدونم که با اینکه اونقدر ریز نشدم آیا تونستم این الگو رو پیاده سازی کنم یا خیر؟!

 

from abc import ABC, abstractmethod


class ProductBase(ABC):
    @abstractmethod
    def detail(self):
        pass

    @abstractmethod
    def price(self):
        pass


class Rugs(ProductBase):
    def __init__(self, name, price, rug_type):
        self.name = name
        self._price = price
        self.rug_type = rug_type

    def detail(self):
        return f"name: {self.name}\ttype: {self.rug_type}"

    def price(self):
        return f"price: {self._price}"


class GiftCard(ProductBase):
    def __init__(self, company, value_card):
        self.company = company
        self.value_card = value_card

    def detail(self):
        return f"company: {self.company}"

    def price(self):
        return f"value: {self.value_card}"


if __name__ == '__main__':
    r1 = Rugs('homa', 100, 'machine')
    r2 = Rugs('atlas', 200, 'handicraft')

    g1 = GiftCard('google', 20)
    g2 = GiftCard('amazon', 50)

    products = [r1, r2, g1, g2]

    for product in products:
        print(product.detail())
        print(product.price())
فایل پیوست

Hossein Ranjbari
Hossein Ranjbari

9 دی 99

0
حذف شده

سلااااااااااااااام و احترام متقابل :)

کدی که استاد نوشتن یه مثال ساده شده و کوچیک شده واقعی بود با پیاده سازی درست.

همین که مفهوم رو پیاده سازی کنید کافیه.

واقعیتش پیاده سازی تون درست نیست. میشه گفت که شما و استاد به یه مساله برخوردید ولی روش های مختلفی انتخاب کردید برای حل مساله. تو پیاده سازی شما از abstraction و یه مقدار ارث بری استفاده شده. اما استاد با abstract factory مساله رو حل کرده.

 

اگر دوباره قسمت تئوری abstract factory همین جلسه رو ببینید یا قسمت اول مقاله زیر رو بخونید. احتمالا منظورم رو میفهمید:

https://refactoring.guru/design-patterns/abstract-factory

 

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

فایل پیوست

محمدعلی رضا

توسط

محمدعلی رضا

9 دی 99