(8)python教程:几行代码搞定python 设计模式
程序员文章站
2022-07-14 21:40:46
...
#!/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 设计模式
上一篇: 三言两语谈团队合作
推荐阅读
-
十几行Python代码帮女儿搞定练习题
-
(8)python教程:几行代码搞定python 设计模式
-
十几行Python代码帮女儿搞定练习题
-
第6篇---Python设计模式之代理模式+含代码实现+学习python的赶快进
-
第5篇---Python设计模式之外观模式+含代码实现+学习python的赶快进
-
第4篇---Python设计模式之单例模式 +含代码实现+学Python的赶快进
-
轻轻松松看电影,这几行python代码帮你搞定
-
轻轻松松看电影,这几行python代码帮你搞定
-
第2篇---Python设计模式之抽象工厂模式+含代码实现+学习python的小哥哥小姐姐一定要看看
-
第3篇---Python设计模式之建造者模式+含代码实现+学习python的小哥哥小姐姐一定要看看