python设计模式之原型模式
来源:互联网 发布:vb用户管理系统 编辑:程序博客网 时间:2024/06/10 07:59
python设计模式之原型模式
意图
- 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些
适用性
- 当要实例化的类是在运行时刻指定时,例如,通过动态装载
- 为了避免创建一个与产品类层次平行的工厂类层次时
- 当一个类的实例只能有几个不同状态组合中的一种时
例子
# -*- coding=utf-8 -*-import copyclass Prototype: def __init__(self): self._objects = {} def register_object(self, name, obj): """Register an object""" self._objects[name] = obj def unregister_object(self, name): """unregister an object""" del self._objects[name] def clone(self, name, **attr): """Clone a registered object and update inner attributes dictionary""" obj = copy.deepcopy(self._objects.get(name)) obj.__dict__.update(attr) return obj# clientclass A(object): def __init__(self): self.x = 1 y = 2 def __str__(self): return "I am A"def main(): a = A() prototype = Prototype() prototype.register_object('a', a) b = prototype.clone('a', a=1, b=2, c=3) print(a) print(b.a, b.b, b.c)if __name__ == '__main__': main()
如果不明白,请看下图调试信息
阅读全文
0 0
- python设计模式之原型模式
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之--原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 拥抱梵谷-蒋勋有声
- 理解一个应用结构
- 将字符串数据按照指定的编码写入到文本文件中
- 作用域安全的构造函数
- 2017-09-06,学习到mysql忘记密码的修补方法
- python设计模式之原型模式
- Tortoise SVN使用方法,简易图解
- Vue源码解析(五)
- go-hbase的坑
- 如何将exe文件包装为Windows服务
- 浏览器的加载、解析、和渲染--总结
- JAVA学习60_Java从字符串中提取数字
- eclipse+tomcat+jdk安装配置
- POJ 1001 Exponentiation(高精度乘法)