• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python设计模式之抽象工厂模式

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了抽象工厂模式,抽象工厂模式实例,抽象工厂模式java,抽象工厂模式优缺点,c#抽象工厂模式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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)

</div>

结果如图:

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

</div>

您可能想查找下面的文章:

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

相关文章

  • 在Python中使用sort()方法进行排序的简单教程
  • python获得一个月有多少天的方法
  • 浅析python中的分片与截断序列
  • 浅谈Python 中整型对象的存储问题
  • python利用拉链法实现字典方法示例
  • 打包发布Python模块的方法详解
  • python常见的格式化输出小结
  • Python实现线程池代码分享
  • Python中使用pprint函数进行格式化输出的教程
  • python使用正则搜索字符串或文件中的浮点数代码实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python使用django获取用户IP地址的方法
    • python列表去重的二种方法
    • 使用Python实现下载网易云音乐的高清MV
    • 十条建议帮你提高Python编程效率
    • python统计文本字符串里单词出现频率的方法
    • pygame播放音乐的方法
    • 布同 统计英文单词的个数的python代码
    • Python编写的com组件发生R6034错误的原因与解决办法
    • python实现的登陆Discuz!论坛通用代码分享
    • python操作CouchDB的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有