Python设计模式(一)【抽象工厂模式】

来源:互联网 发布:古墓丽影9画面优化 编辑:程序博客网 时间:2024/04/28 20:54

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

结果如图:

这里写图片描述

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网签过了中介不配合过户怎么办 房屋被中介恶意网签了怎么办 重介质选矿块矿品位低怎么办 去泰国酒吧选小姐只会说中文怎么办 脚被窝烫伤后发炎里面有龙怎么办 脚被窝烫了发炎有龙怎么办 辣椒落花的药喷到孩子嘴巴了怎么办 香炉里的小米生虫子了怎么办 香炉里面放的小米生虫子了怎么办 肉肉上长满了白色的小虫子怎么办 多肉上面有白色的虫子怎么办 多肉植物根部长白色虫子怎么办 朋友玩期货把我钱赔了怎么办 宝宝床上虫子咬了肿大包怎么办 喷药的杀虫剂的喷头坏了怎么办 宅e经营贷个人没有公司怎么办 浏览器下载完插件安装不好用怎么办 要求评审专家复核他不来怎么办 微博国际版不能用微博号登录怎么办 云南省特岗登录名忘了怎么办 人行登录名忘了再怎么办 生源地贷款登录名忘了怎么办 举报19楼帖子但是不给删除怎么办 新浪微博手机号被注册了怎么办 忘记新浪微博绑定的邮箱账号怎么办 申诉找回微信账号密码失败怎么办 注册微信号时验证码错误怎么办 老板让写的报道没有当天写完怎么办 洛奇英雄传镶嵌有微章的时装怎么办 上午12点用24小时制怎么办 三分钟看懂捷信个人贷款怎么办 精神不正常的父亲到单位闹怎么办 母亲和父亲一直和我闹怎么办 儿子拿了父亲的钱买手机怎么办 电动车骑的慢的时候车头打漂怎么办 二晓啊相公太爱我了怎么办全文免费 车牌被套牌了又有违章怎么办 高中生只学好主课副科学不好怎么办 母泰迪怀孕23天了不吃饭怎么办 媳妇一再触碰我的底线怎么办 发票商品编码好多选错了分类怎么办