Python抽象工厂模式知识点详解

  • 更新时间:2020-04-15 08:29:09
  • 编辑:董振国

python面向对象编程入门,我们需要不断学习进步

"""抽象工厂模式的实现"""

import random


class 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)

结果如图:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

相关教程

  • Python设计模式中抽象工厂模式原理和用法

    这篇文章主要介绍了Python设计模式之抽象工厂模式,简单讲述了抽象工厂模式的概念、原理并结合实例形式分析了Python实现与使用抽象工厂模式的相关操作技巧,需要的朋友可以参考下

    发布时间:2019-06-20

  • Python外观模式知识点实例总结

    这篇文章主要介绍了Python设计模式之外观模式,结合实例形式详细分析了外观模式的概念、原理、用法及相关操作注意事项,需要的朋友可以参考下

    发布时间:2019-06-10

  • Python物理学高效计算

    Python物理学高效计算

    本书由两位核工程博士编写,书中包含了物理领域的许多实际案例。通过阅读本书,读者会学到如何用Python编程语言收集、分析数据,构建软件,发布结果等技能。 感兴趣的可以下载学习

    大小:6.6 MBPython电子书

  • Python3网络爬虫开发实战

    Python3网络爬虫开发实战

    本书教你学会如何用Python 3开发爬虫,通过多个案例介绍了不同场景下如何实现数据爬取,最后介绍了pyspider框架、Scrapy框架和分布式爬虫等

    大小:375.5 MBPython爬虫电子书

  • 零基础入门学习Python

    零基础入门学习Python

    Python零基础入门学习-水木书荟 适合学习Python3的入门读者,也适用对编程一无所知,但渴望用编程改变世界的朋友们!本书提倡理解为主,应用为王。因此,只要有可能,小甲鱼(作者)都会

    大小:59.3 MBPython编程电子书

  • Python带我起飞:入门、进阶、商业实战

    Python带我起飞:入门、进阶、商业实战

    “教学视频+ 图书+ QQ群交流、答疑”三维学习方案,让Python学习更轻松。赠送教学视频47段,共计429分钟。全书共计42个实例。15位技术专家联合推荐!

    大小:185 MBPython编程电子书

  • 基于ArcGIS的Python编程秘笈(第2版)

    基于ArcGIS的Python编程秘笈(第2版)

    80多个编程技巧,教你如何更好地完成地理信息处理,介绍如何使用Python来创建桌面ArcGIS环境下的地理处理脚本、管理地图文档和图层、查找和修复丢失的数据链接、编辑要素类和表中的数据等

    大小:54.8 MBPython编程电子书

  • 疯狂Python讲义

    疯狂Python讲义

    本书全面而深入介绍了Python编程的相关内容,全书内容大致可分为四个部分,*部分系统讲解了Python的基本语法结构、函数编程、类和对象、模块和包、异常处理等;第二部分主要介绍Python常用

    大小:124.3 MBPython编程电子书

  • 从零开始学Python程序设计

    从零开始学Python程序设计

    《从零开始学Python程序设计》是一本关于Python零基础的电子书资源,涉及从零开始、Python、程序设计等相关内容,本文提供大小为172MB的完整影印PDF格式电子书下载,希望大家能够喜欢。

    大小:172 MBPython零基础电子书

  • Python科学计算

    Python科学计算

    本书详细介绍Python科学计算中最常用的扩展库NumPy、SciPy、matplotlib、Pandas、SymPy、TTK、Mayavi、OpenCV、Cython,涉及数值计算、界面制作、三维可视化、图像处理、提高运算效率等多方面的内容。所

    大小:59.5 MBPython电子书

  • Python游戏编程入门

    Python游戏编程入门

    本书为读者提供了充分的实践和练习,并且关注Python编程中的高级话题,这些全部通过游戏示例和项目来介绍,而这已经证明是一种高效而有趣的学习方法,感兴趣的可以了解一下

    大小:41.6 MBPython游戏编程电子书

  • Selenium自动化测试:基于Python语言

    Selenium自动化测试:基于Python语言

    Selenium是一个主要用于Web应用程序自动化测试的工具集合,在行业内已经得到广泛的应用。本书介绍了如何用Python语言调用Selenium WebDriver接口进行自动化测试

    大小:6.93 MBSelenium电子书

用户留言