您当前的位置:首页 > 美文欣赏 > 内容

抽象工厂模式(抽象工厂怎么理解)

“““ self.pet_factory = animal_factory def show_pet(self): “““使用抽象工厂创建并显示一个宠物“““ pet = self.pet_factory.get_pet() print(“我们有一个可爱的 {}“.format(pet)) print(“它说 {}“.format(pet.speak())) print(“我们还有 {}“.format(self.pet_factory.get_food()))# 工厂生产的事物 class Dog: def speak(self): return “汪“ def __str__(self): return “Dog“class Cat: def speak(self): return “喵“ def __str__(self): return “Cat“# Factory classes class DogFactory: def get_pet(self): return Dog() def get_food(self): return “狗食“class CatFactory: def get_pet(self): return Cat() def get_food(self): return “猫粮“# 随机创建合适的工厂def get_factory(): “““让我们动起来,我们需要不断学习进步“““抽象工厂模式的实现“““ import randomclass PetShop: “““宠物商店“““ def __init__(self, animal_factory=None): “““宠物工厂是我们的抽象工厂,“““ return random.choice([DogFactory, CatFactory])()# 多个工厂显示宠物if __name__ == “__main__“: for i in range(4): shop = PetShop(get_factory()) shop.show_pet() print(“=“ * 20)以上就是本文的全部内容,如果产品单一,此模式为一个产品家族提供了统一的创建接口,我们可以随意设置,但是如果有多个业务品种、业务分类时,希望对大家的学习有所帮助抽象工厂和工厂模式的区别 c++首先来看看这两者的定义区别:工厂模式:定义一个用于创建对象的借口。

抽象工厂怎么理解

抽象工厂模式(英语:Abstract Factory)是一种常见的设计模式。此模式为一个产品家族提供了统一的创建接口。当需要这个产品家族的某一系列的时候,可以从抽象工厂中选出相对系的系列来创建一个具体的工厂类别。假设我们有两种产品接口 Button 和 Border ,每一种产品都支持多种系列,比如 Mac 系列和 Windows 系列。这样每个系列的产品分别是 MacButton, WinButton, MacBorder, WinBorder 。为了可以在运行时刻创建一个系列的产品族,我们可以为每个系列的产品族建立一个工厂 MacFactory 和 WinFactory 。每个工厂都有两个方法 CreateButton 和 CreateBorder 并返回对应的产品,可以将这两个方法抽象成一个接口 AbstractFactory 。这样在运行时刻我们可以选择创建需要的产品系列。

抽象工厂模式的简介

当每个抽象产品都有多于一个的具体子类的时候,工厂角色怎么知道实例化哪一个子类呢?比如每个抽象产品 角色都有两个具体产品。抽象工厂模式提供两个具体工厂角色,分别对应于这两个具体产品角色,每一个具体工厂角色只负责某一个产品角色的实例化。每一个具体工厂类只负责创建抽象产品的某一个具体子类的实例。每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结构。

Python设计模式之抽象工厂模式

Python设计模式之抽象工厂模式这篇文章主要为大家详细介绍了Python设计模式之抽象工厂模式,感兴趣的小伙伴们可以参考一下python面向对象编程入门,我们需要不断学习进步“““抽象工厂模式的实现“““ import randomclass PetShop: “““宠物商店“““ def __init__(self, animal_factory=None): “““宠物工厂是我们的抽象工厂。我们可以随意设置。“““ self.pet_factory = animal_factory def show_pet(self): “““使用抽象工厂创建并显示一个宠物“““ pet = self.pet_factory.get_pet() print(“我们有一个可爱的 {}“.format(pet)) print(“它说 {}“.format(pet.speak())) print(“我们还有 {}“.format(self.pet_factory.get_food()))# 工厂生产的事物 class Dog: def speak(self): return “汪“ def __str__(self): return “Dog“class Cat: def speak(self): return “喵“ def __str__(self): return “Cat“# Factory classes class DogFactory: def get_pet(self): return Dog() def get_food(self): return “狗食“class CatFactory: def get_pet(self): return Cat() def get_food(self): return “猫粮“# 随机创建合适的工厂def get_factory(): “““让我们动起来!“““ return random.choice([DogFactory, CatFactory])()# 多个工厂显示宠物if __name__ == “__main__“: for i in range(4): shop = PetShop(get_factory()) shop.show_pet() print(“=“ * 20)以上就是本文的全部内容,希望对大家的学习有所帮助

抽象工厂和工厂模式的区别 c++

首先来看看这两者的定义区别:工厂模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类个人觉得这个区别在于产品,如果产品单一,最合适用工厂模式,但是如果有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。再通俗深化理解下:工厂模式针对的是一个产品等级结构 ,抽象工厂模式针对的是面向多个产品等级结构的。再来看看工厂方法模式与抽象工厂模式对比:工厂方法模式抽象工厂模式针对的是一个产品等级结构 针对的是面向多个产品等级结构 一个抽象产品类 多个抽象产品类 可以派生出多个具体产品类 每个抽象产品类可以派生出多个具体产品类 一个抽象工厂类,可以派生出多个具体工厂类 一个抽象工厂类,可以派生出多个具体工厂类 每个具体工厂类只能创建一个具体产品类的实例 每个具体工厂类可以创建多个具体产品类的实例


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 一顾倾人城小说(一顾倾人城)

下一篇: 魅族18spro(魅族18spro和荣耀magic3Pro那个好)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号