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 with statement 进行文件操作指南
Aug 22 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
Python深度优先算法生成迷宫
Jan 22 Python
python用户管理系统
Mar 13 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python魔法方法功能与用法简介
Apr 04 Python
python队列Queue的详解
May 10 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
详解Python IO口多路复用
Jun 17 Python
Python 如何测试文件是否存在
Jul 31 Python
python批量修改交换机密码的示例
Sep 22 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
虫族 ZERG 概述
2020/03/14 星际争霸
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP 组件化编程技巧
2009/06/06 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
100%羊绒:NakedCashmere
2020/08/26 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫