Python版

https://github.com/faif/python-patterns/blob/master/fundamental/delegation_pattern.py

#!/usr/bin/env python
# -*- coding: utf-8 -*- """
Reference: https://en.wikipedia.org/wiki/Delegation_pattern
Author: https://github.com/IuryAlves *TL;DR80
Allows object composition to achieve the same code reuse as inheritance.
""" class Delegator(object):
"""
>>> delegator = Delegator(Delegate())
>>> delegator.do_something("nothing")
'Doing nothing'
>>> delegator.do_anything() """ def __init__(self, delegate):
self.delegate = delegate def __getattr__(self, name):
def wrapper(*args, **kwargs):
if hasattr(self.delegate, name):
attr = getattr(self.delegate, name)
if callable(attr):
return attr(*args, **kwargs)
return wrapper class Delegate(object): def do_something(self, something):
return "Doing %s" % something if __name__ == '__main__':
import doctest
doctest.testmod()

Python转载版

最新文章

  1. 【bzoj4517】 Sdoi2016—排列计数
  2. 网络流最小割 POJ 3469
  3. Teehan & Lax 发布 iOS 7 GUI PSD 模板,免费下载
  4. 编译hadoop遇到maven timeout
  5. Jmeter笔记1:使用Badboy录制脚本,作为JMeter测试的素材
  6. WIM更新命令(打补丁)
  7. PHP内核探索之变量(1)变量的容器-Zval
  8. ios-pch文件的手动添加
  9. Java 新特性(7) - Java EE 7 新特性
  10. Java--向数据库添加txt文件中的批量数据
  11. 【转载】【时序约束学习笔记1】Vivado入门与提高--第12讲 时序分析中的基本概念和术语
  12. 其它综合-运维老鸟分享linux运维发展路线规划
  13. Java作业三(2017-9-25)
  14. @Html.xxxxxFor() 规范写法
  15. <<梦断代码>>阅读笔记一
  16. SharePoint 2013 文档库“样式”变了
  17. 什么是RUP
  18. 通过 NewLife.XCode 迁移任意现有数据库到任意数据库
  19. Eclipse快捷键--备忘
  20. xcode/Interface Build(IB)/iPhone模拟器/mac/组合键常用的命令集

热门文章

  1. Spark记录(二):Spark程序的生命周期
  2. idea查看方法在哪里被调用
  3. grafan源码编译
  4. [JavaScript] 实现简单的表单数据校验功能
  5. VM的三种连接方式(转载)
  6. mui中openWindow方法的通用封装
  7. 菜鸡的Java笔记 第二十七 - java 链表基本概念
  8. [luogu7417]Minimizing Edges P
  9. [atAGC052D]Equal LIS
  10. [poj2505]A multiplication game