python设计模式大全

yipeiwu_com6年前Python基础

本文实例讲述了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数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

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

相关文章

Python中使用摄像头实现简单的延时摄影技术

Python中使用摄像头实现简单的延时摄影技术

延时摄影(英语:Time-lapse photography)是以一种较低的帧率拍 下图像或者视频,然后用正常或者较快的速率播放画面的摄影技术。在一段延时摄影视频中,物体或者景物缓慢变化...

Python生成MD5值的两种方法实例分析

本文实例讲述了Python生成MD5值的两种方法。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import datetime # NO.1 使用M...

Python单元测试框架unittest使用方法讲解

概述 1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试...

学习和使用python的13个理由

学习和使用python的13个理由

如果您希望转向网站开发或软件开发,成为程序员中的一员,那么学习HTML,CSS和JavaScript的基础三重奏就不会出错。但要真正在拥挤的应用领域中脱颖而出,您还是需要学习其他编程语言...

python实现学员管理系统

python实现学员管理系统这个小程序是我刚刚接触python时,导师带着做的第一个小项目。通过这次练习,我学会了很多东西。下面是具体的代码和要求 ''' 学员管理系统1.0版本 1.添...