首页 > 其他分享 >设计模式-工厂篇(1)

设计模式-工厂篇(1)

时间:2023-04-27 23:13:00浏览次数:32  
标签:__ get 子类 self 工厂 设计模式 class def

意图:

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

适用性:

当一个类不知道它所必须创建的对象的类的时候。

当一个类希望由它的子类来指定它所创建的对象的时候。

当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

python代码:

 

代码

# coding=utf8


class TranslateBase(object):
    def __init__(self):
        self.trans = {}

    def get(self, key):
        return self.trans.get(key, str(key))


class ChinaClass(TranslateBase):
    def __init__(self):
        self.trans = {"dog": "狗", "cat": "猫"}


class JapanClass(TranslateBase):
    def __init__(self):
        self.trans = {"dog": "gou", "cat": "mao"}


class EnglandClass(TranslateBase):
    pass


def get_class(cls_name):
    _cls_map = {"china": ChinaClass, "japan": JapanClass, "england": EnglandClass}
    return _cls_map.get(cls_name)()


ch, en = get_class("china"), get_class("england")
for item in "dog parrot cat bear".split():
    print(ch.get(item), en.get(item))

 

标签:__,get,子类,self,工厂,设计模式,class,def
From: https://www.cnblogs.com/asia-yang/p/17360493.html

相关文章

  • python的设计模式
    设计模式目录设计模式一、什么是设计模式二、python实现设计模式创建型模式1.单例模式2.工厂模式一、什么是设计模式软件工程中,设计模式是指软件设计问题的推荐方案。设计模式一般是描述如何组织代码和使用最佳实践来解决常见的设计问题。需要记住一点:设计模式是高层次的方案,并......
  • Java设计模式-抽象工厂模式
    简介设计模式是软件设计中的一种常见方法,通过定义一系列通用的解决方案,来解决常见的软件设计问题。其中,抽象工厂模式是一种非常常见的设计模式,它可以帮助我们创建一组相关的对象,而不需要指定具体的实现方式。抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关的......
  • 设计模式小结
    简单工厂模式将具有相同属性事物用一个抽象基类,里面具有抽象方法来作为父类,然后其他子类通过继承来实现这个基类,通过重写实现基类里面的抽象方法创建一个工厂方法,通过父类变量来策略模式就是在简单工厂模式的基础上,将工厂方法改成策略对象,然后去调用该对象的重写基类的抽象方法单一......
  • 【单例设计模式原理详解】Java/JS/Go/Python/TS不同语言实现
    简介单例模式(SingletonPattern)属于创建型设计模式,这种模式只创建一个单一的类,保证一个类只有一个实例,并提供一个访问该实例的全局节点。当您想控制实例数目,节省系统资源,并不想混用的时候,可以使用单例模式。单例有很多种实现方式,主要分为懒汉和饿汉模式,同时要通过加锁来避免线程......
  • [AHK]用AutoHotkey面向对象实践“简单工厂模式”
    用面向对象编程实现一个计算器程序,要求输入两个数和运算符号,得到结果。“所有编程初学者都会有这样的问题,就是碰到问题就直觉地用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号,然后......
  • 【Java设计模式】装饰者设计模式
    目录1.装饰者模式(Wrapper)概念2.装饰者是什么?3.装饰者设计模式-参与者3.1组成3.1Demo1.Component(抽象构件)2.ConcreteComponent(具体构件)3.Decorator(抽象装饰类)4.ConcreteDecorator(具体装饰类)5.Test类:3.2总结4.JDK源码中的装饰者设计模式扩展:开闭原则1.装饰者模式(Wra......
  • 简单工厂模式
    一、第一种方法//实现了客户端调用和implOne,implTwo的解耦合//factory类实现了变化隔离1#include<string>2#include"DynOBJ.h"3usingnamespacestd;45classApi{6public:7virtualvoidtest(strings)=0;8protected:9Api(){}10};11......
  • 设计模式(18)-Command Pattern
    一、 命令(Command)模式命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。......
  • 设计模式
    总体设计模式分为三大类:创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共7种:代理模式、桥接模式、适配器模式、装饰器模式、外观模式、享元模式、组合模式。行为型模式,共11种:观察者模式、策略模式、模板方法模式、迭代子模式、责任链......
  • JavaScript设计模式
    JavaScript设计模式设计模式概念经过代码设计经验总结之后设计出的一种固定解决问题的方式设计模式作用代码复用保证代码可靠性将编程工程化更易被他人理解设计模式的分类(W3C平台)构造器模式,模块化模式,暴露模块模式,单例模式,中介者模式,原型模式,命令模式,外......