python设计模式大全

 更新时间:2016年06月27日 10:10:06   作者:zeo  
这篇文章主要介绍了python设计模式,通过简单的代码实现了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的哈希函数对密码加密

    大家好,本篇文章主要讲的是用python的哈希函数对密码加密,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • python numpy创造图像矩阵示例详解

    python numpy创造图像矩阵示例详解

    这篇文章主要为大家介绍了python numpy创造图像矩阵示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Pytorch GPU显存充足却显示out of memory的解决方式

    Pytorch GPU显存充足却显示out of memory的解决方式

    今天小编就为大家分享一篇Pytorch GPU显存充足却显示out of memory的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 浅谈Pytorch中的torch.gather函数的含义

    浅谈Pytorch中的torch.gather函数的含义

    今天小编就为大家分享一篇浅谈Pytorch中的torch.gather函数的含义,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 基于PyQt5制作一个PDF文件合并器

    基于PyQt5制作一个PDF文件合并器

    PDF文件合并工具是非常好用可以把多个pdf文件合并成一个,本文将利用Python中的PyQT5模块,制作一个简易的PDF文件合并器,感兴趣的可以了解一下
    2022-03-03
  • Python ArgumentParse的subparser用法说明

    Python ArgumentParse的subparser用法说明

    这篇文章主要介绍了Python ArgumentParse的subparser用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 10招!看骨灰级Pythoner玩转Python的方法

    10招!看骨灰级Pythoner玩转Python的方法

    这篇文章主要介绍了10招!看骨灰级Pythoner如何玩转Python,需要的朋友可以参考下
    2019-04-04
  • Python PyQt5实战项目之查询器的实现流程详解

    Python PyQt5实战项目之查询器的实现流程详解

    PyQt5以一套Python模块的形式来实现功能。它包含了超过620个类,600个方法和函数。它是一个多平台的工具套件,它可以运行在所有的主流操作系统中,包含Unix,Windows和Mac OS。PyQt5采用双重许可模式。开发者可以在GPL和社区授权之间选择
    2021-11-11
  • Python 实现链表实例代码

    Python 实现链表实例代码

    这篇文章主要介绍了Python 实现链表实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • Python tabulate结合loguru打印出美观方便的日志记录

    Python tabulate结合loguru打印出美观方便的日志记录

    在开发过程中经常碰到在本地环境无法完成联调测试的情况,必须到统一的联机环境对接其他系统测试。往往是出现了BUG难以查找数据记录及时定位到错误出现的位置。本文将利用tabulate结合loguru实现打印出美观方便的日志记录,需要的可以参考一下
    2022-10-10

最新评论