首页 > 其他分享 >创建模式-简单工厂模式

创建模式-简单工厂模式

时间:2023-06-28 11:44:07浏览次数:36  
标签:__ name 创建 self 模式 工厂 say animal class

from abc import ABCMeta, abstractmethod


class Animal(metaclass=ABCMeta):

    @abstractmethod
    def say(self):
        pass


class Dog(Animal):

    def say(self):
        print("汪汪")


class Cat(Animal):

    def say(self):
        print("喵喵")


class Factory():
    animal = None

    def get_animal(self, name):
        if name == "狗":
            animal = Dog()
        if name == "猫":
            animal = Cat()
        return animal


if __name__ == "__main__":
    animal_factory = Factory()
    animal = animal_factory.get_animal("狗")
    animal.say()

  

标签:__,name,创建,self,模式,工厂,say,animal,class
From: https://www.cnblogs.com/fuchenjie/p/17511003.html

相关文章

  • 光盘刻录两种模式
     具体方法如下:一、把一张空白光盘放入刻录机(光盘驱动器);1、打开“计算机”窗口,双击光盘驱动器的图标,弹出“刻录光盘”对话框,选择刻录类型;2、这里有两个选项:一个是“类似于USB闪存驱动器”;另一个是“带有CD/DVD播放器”;、选择“类似于USB闪存驱动器”,将刻录一张可以随时保......
  • 说说设计模式~责任链模式
    回到目录责任链模式它是一种设计模块,主要将操作流程与具体操作解耦,让每个操作都可以设置自己的操作流程,这对于工作流应用是一个不错的选择!下面是官方标准的定义:责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链......
  • 你用过哪些设计模式(一)?
    什么是设计模式?一些经验总结的最佳实践!是不是必须要用?并不是,但是既然已经说是最佳实践了,该用的地方,你不用,就有些违背常理了。一、单例这个或许是最最最常见,也是最最最常用的了。为什么要用单例模式?因为只需要一个对象就够了(有时候只能有一个,有时候是不需要有多个)。对象的......
  • 主窗口 模式打开窗口 UI刷新的测试
    窗体1定时器,标签,按钮。窗体1打开后,定时器自动运行,定时器每秒时间到,使得标签数值加1,点击按钮会打开窗体2。窗体2以模式方式打开,点击按钮会启动一次通讯请求。1-窗体1定时器,窗体2按钮触发同步通讯,窗体1的标签数值卡住不更新2-窗体1定时器,窗体2按钮触发异步通讯,窗体1的标签......
  • 基于Redis的消息发布和订阅(广播模式)
    最近在优化一个redis的大key问题,原先的同事写法是将所有的配置都放在一个key里面,value是一个map.但是随着配置越来越多,这个map也变得很大,已经影响redis的性能.遂决定将map里面的每个配置单独出来一个key,当有配置变动的时候,通过redis的消息队列通知到其他程序.下面......
  • 设计模式--适配器模式 Adapter
    设计模式 适配器模式Adapter 定义一个规则--->和尚吃斋念经打坐撞钟习武 缺省适配器模式 鲁智深鲁达形态丑陋面貌凶顽 此人上应天星心地刚直虽时下凶顽命中驳杂久后却得清净证果非凡汝等皆不及他 就是在一个接口跟正常子......
  • 综合安防海康服务器创建角色
    登录平台,点右上角的系统管理  点击角色管理  添加,然后勾选应用权限,需要给哪些权限,就选择相应的权限,从上到下选择  然后到用户管理,新建一个用户,关联刚才创建的角色即可  ......
  • 创建django项目
    一、python基本信息python版本:3.8Django版本:2.2django:python写web网站的最好用的框架,mtv框架pip:python自带的包管理工具,管家pip安装一个第三方包:pipinstall包名==版本(pipinstalldjango==2.2)pip卸载:pipuninstall包名pip查看所有包:piplist终端命令行:pythonpytho......
  • 创建WinFrom项目,生成桌面exe安装包 【VS2019】
    一:添加WinFrom开发需要的工具  a)打开VS-->选择随意项目或继续无需代码-->工具-->获取工具和功能-->选中【.NET桌面开发】进行安装即可。二:创建WinFrom项目  a)打开VS-->创建新项目-->搜索窗体应用,选择Windows窗体应用(.NETFramework)如图所示-->修改项目名称、位置......
  • AT模式【分布式事务】
    1、导入maven依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><!--版本较低,1.3.0,因此排除--><exclusion>......