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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
Python删除指定目录下过期文件的2个脚本分享
Apr 10 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
django中的HTML控件及参数传递方法
Mar 20 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
pytorch 共享参数的示例
Aug 17 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
Python无损压缩图片的示例代码
Aug 06 Python
python爬取豆瓣电影TOP250数据
May 23 Python
Python下opencv库的安装过程及问题汇总
Jun 11 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
图解上海144收音机
2021/03/02 无线电
PHP 输出简单动态WAP页面
2009/06/09 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
js 走马灯简单实例
2013/11/21 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
网络专业学生个人的自我评价
2013/12/16 职场文书
人力资源经理自我评价
2014/01/04 职场文书
表扬信格式
2014/01/12 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
结婚典礼致辞
2015/07/28 职场文书
2016猴年春节问候语
2015/11/11 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
Node.js实现断点续传
2021/06/23 Javascript
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电