`
poson
  • 浏览: 361207 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

(8)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') 

 


其他参考:
(1)python教程:hello world
(2)python教程:数据类型和运算规则
(3)python教程:元组,列表,词典
(4)python教程:分支、循环
(5)python教程:函数
(6)python教程:class
(8)python教程:几行代码搞定python 设计模式

 

5
1
分享到:
评论
1 楼 guji528 2012-11-20  
很好,清晰明了!

相关推荐

    深度学习:Python 教程:使用 Keras、Python、Theano 和 TensorFlow 开发深度学习模型

    深度学习:Python 教程:使用 Keras、Python、Theano 和 TensorFlow 开发深度学习模型

    python写的几行代码实现2048游戏源码

    python写的几行代码实现2048游戏

    《Python编程:从入门到实践》源代码文件

    8. **版本控制**:源代码文件可能包含了使用Git进行版本控制的相关示例,包括初始化仓库、添加文件、提交更改、分支管理和合并冲突等。 9. **Web开发**:可能涉及到使用Flask或Django等Python Web框架创建简单的Web...

    千峰Python超详细入门教程(百度云盘分享).txt

    ├─千锋Python教程:第01章 第一个Python程序与数据存储及数据类型(9集) │ │ .DS_Store │ │ │ ├─code │ │ 1、数据存储.txt │ │ 2、第一个python程序.py │ │ 3、注释.py │ │ 4、输出与输入.py │ ...

    Python毕业设计:车牌识别系统源码.zip

    Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python...

    Python:发送qq邮箱只需几行代码轻松搞定

    Python:发送qq邮箱只需几行代码轻松搞定 在日常业务中,经常会遇到需要程序发邮件提醒自己的情况。例如数据异常、工作任务进度完成情况、今日天气、今日股票行情等各种场景。如果引入发送邮箱以推进预期进度的功能...

    Python 安装与配置的详细教程

    python安装:Python 安装与配置的详细教程 python安装:Python 安装与配置的详细教程 python安装:Python 安装与配置的详细教程 python安装:Python 安装与配置的详细教程 python安装:Python 安装与配置的详细教程 ...

    《零基础:21天搞定Python分布爬虫》课件

    《零基础:21天搞定Python分布爬虫》这个课程针对初学者,旨在通过21天的学习,帮助大家掌握Python爬虫的基础知识以及分布式爬虫的实现。下面,我们将深入探讨该课程可能涵盖的一些关键知识点。 首先,Python爬虫的...

    2023最新教程【樵夫教你学Python】Python全套教程 Python基础

    Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+...

    python电子书:《简明python教程》

    《简明Python教程》是一本面向初学者的Python编程指南,旨在帮助读者快速掌握Python语言的基础知识和核心概念。Python是一种广泛应用于数据处理、Web开发、科学计算等领域的高级编程语言,以其简洁、易读的语法深受...

    python基础教程源代码-python基础教程第三版源代码.pdf

    《Python基础教程》第三版源代码是一份详细的学习资源,涵盖了Python编程的多个核心概念和实践技巧。这个源代码集合包括了从基础语法到高级特性的各种示例,旨在帮助初学者逐步掌握Python编程。 在Python的基础部分...

    Python基础教程(代码详解).pdf

    Python基础教程(代码详解).pdfPython基础教程(代码详解).pdfPython基础教程(代码详解).pdfPython基础教程(代码详解).pdfPython基础教程(代码详解).pdfPython基础教程(代码详解).pdfPython基础教程(代码...

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第.pptx

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第 《Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第》是一本介绍Python编程语言及其应用领域的书籍,适合对Python编程感兴趣的读者...

    pythonGame小游戏代码+python课程设计代码

    在本压缩包“pythonGame”中,包含了丰富的Python编程资源,特别适合于学习者进行Python课程设计和小作业实践。这个包重点展示了Python在游戏开发中的应用,通过乒乓球游戏和滑雪游戏的源代码,我们可以深入理解如何...

    Python编程实战:运用设计模式、并发和程序库创建高质量程序(全球资深Python专家Doug Hellmann作序推荐,以3个完整的案例。

    书中通过大量实用的范例代码和三个完整的案例研究,全面而系统地讲解了如何运用设计模式来规划代码结构,如何通过并发与cython等技术提升代码执行速度,以及如何利用各种python程序库来快速开发具体的应用程序和游戏...

    简明python教程+源代码

    简明python教程+源代码,英文原版名为《A Byte of Python》。它非常简明扼要地介绍了Python语言基础的各个方面。 适合群体: 仅仅临时使用Python的新手,非专业性地临时运用十来行简单代码就能自动化处理一些工作。 ...

    python入门配套教程百度云分享.pdf

    千锋教育 Python 视频教程 www.qfedu.com/video 做真实的自己-用良心做教育 python 入门配套教程百度云分享 Python 由于其简单,快速,库丰富的特点在国内使用的越来越广泛。最 近几年它出现了爆发式的增长,而且与...

    千峰python课件笔记+源码 (凯哥)

    千锋python基础教程:8、os与窗口控制与内存修改与语言 第二章前端基础 1、html&css;基础 2、html&css;提升 3、JavaScript基础 4、JavaScript提升 5、JavaScript进阶与轮播和飞机大战坦克 6、JQuery基础 7、...

    Python编程从入门到实践书本源代码文件.rar

    源代码中可能会有各种示例来解释这些概念,帮助读者掌握面向对象的设计模式。 3. **异常处理**:在Python中,错误和异常是通过try/except块进行处理的。源代码文件可能包含异常处理的例子,演示如何优雅地处理可能...

Global site tag (gtag.js) - Google Analytics