python设计模式大全


Posted in Python onJune 27, 2016

本文实例讲述了python常见的设计模式。分享给大家供大家参考,具体如下:

# #!/usr/bin/env python
# # -*- coding:utf-8
#
# class HttpBase:
#   def get(self):
#     psss
# class Http1(HttpBase):
#   def get(self):
#     print 'http1'
# class Http2(HttpBase):
#   def get(self):
#     print 'http2'
#
#
# class Base:
#   def __init__(self):
#     self.httpobj = None
#   def http(self):
#     self.httpobj.get()
#   def compute(self):
#     self.http()
#     self.show()
#   #虚函数
#   def show(self):
#     pass
#   def notify(self, k):
#     print 'notify', k
#
#
# #桥接模式,通过A,B 关联不同的http1和http2
# class BaseA(Base):
#   def __init__(self):
#     self.httpobj = Http1()
#   def notify(self, k):
#     print 'A notify', k
#   def show(self):
#     print 'show a'
#
# class BaseB(Base):
#   def __init__(self):
#     self.httpobj = Http2()
#   def notify(self, k):
#     print 'B notify', k
#   def show(self):
#     print 'show b'
#
# #观测者模式
# class Observer:
#   def __init__(self):
#     self.listOB = []
#   def register(self, obj):
#     self.listOB.append(obj)
#   def notify(self):
#     for obj in self.listOB:
#       obj.notify(len(self.listOB))
#
# #适配器模式
# class B1:
#   def http(self):
#     BaseB().http()
# #工厂模式
# class Factory:
#   def CreateA(self):
#     return BaseA()
#   def CreateB(self):
#     return BaseB()
#
#
# #单例模式
# class Logger(object):
#   log = None
#   @staticmethod
#   def new():
#
#     import threading
#     #线程安全
#     mylock = threading.RLock()
#     mylock.acquire()
#     if not Logger.log:
#       Logger.log = Logger()
#     mylock.release()
#
#     return Logger.log
#   def write(self, v):
#     print 'Logger ', v
#
# if __name__ == "__main__":
#   a = Factory().CreateA()
#   b = Factory().CreateB()
#
#   objS = Observer()
#   objS.register(a)
#   objS.register(b)
#
#   a.compute()
#   b.compute()
#   objS.notify()
#
#   b1 = B1()
#   b1.http()
#
#   Logger.new().log.write('v')

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
Python实现堆排序的方法详解
May 03 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
如何用python清洗文件中的数据
Jun 18 Python
Python实现简单得递归下降Parser
May 02 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 #Python
Python使用自带的ConfigParser模块读写ini配置文件
Jun 26 #Python
Python读写txt文本文件的操作方法全解析
Jun 26 #Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 #Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 #Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 #Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 #Python
You might like
php 文件状态缓存带来的问题
2008/12/14 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
php组合排序简单实现方法
2016/10/15 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
Python3读取zip文件信息的方法
2015/05/22 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
浅谈Python的list中的选取范围
2018/11/12 Python
django使用LDAP验证的方法示例
2018/12/10 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python 动态调用函数实例解析
2019/10/21 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
python实现学生通讯录管理系统
2021/02/25 Python
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
小学教师评语大全
2014/04/23 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
个人违纪检讨书
2014/09/15 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL