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抓taobao图片爬虫
Oct 26 Python
Python中一些自然语言工具的使用的入门教程
Apr 13 Python
在centos7中分布式部署pyspider
May 03 Python
Python部署web开发程序的几种方法
May 05 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
Python中print函数简单使用总结
Aug 05 Python
python实现简易淘宝购物
Nov 22 Python
提取视频中的音频 Python只需要三行代码!
May 10 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
Python实现将Excel转换为json的方法示例
2017/08/05 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
大学生村官座谈会发言材料
2014/05/25 职场文书
丽江古城导游词
2015/02/03 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
python在package下继续嵌套一个package
2022/04/14 Python