• 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获取Windows或Linux主机名称通用函数分享
  • 在Python中marshal对象序列化的相关知识
  • 在Python的Django框架中生成CSV文件的方法
  • 详解Python中的正则表达式的用法
  • Python简单计算文件夹大小的方法
  • python中字典(Dictionary)用法实例详解
  • Python __getattr__与__setattr__使用方法
  • python实现爬虫统计学校BBS男女比例(一)
  • 浅谈Python爬取网页的编码处理
  • Python中的super用法详解

文章分类

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

最近更新的内容

    • python生成指定尺寸缩略图的示例
    • Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
    • Python中的模块导入和读取键盘输入的方法
    • 浅谈插入排序算法在Python程序中的实现及简单改进
    • python 根据正则表达式提取指定的内容实例详解
    • netbeans7安装python插件的方法图解
    • Python threading多线程编程实例
    • 详解Python的迭代器、生成器以及相关的itertools包
    • 通过mod_python配置运行在Apache上的Django框架
    • python pickle 和 shelve模块的用法

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

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