设计模式
文章平均质量分 60
apple_boys
这个作者很懒,什么都没留下…
展开
-
23种设计模式之python实现--工厂方法
#理解:#工厂模式:实例化延迟到子类#例子:产品为一种运算#缺点:使用类作为代价,且Factory对修改不封闭,对于每加一个product就要修改Factory,当然可以使用配置文件,这样就能对factory封闭。class product_opt: def getResult(self): passclass product_add(product_opt):原创 2014-04-01 20:38:05 · 1057 阅读 · 0 评论 -
23种设计模式之python实现--Composite模式
#理解#具有层次结构,且使得部分和整体具有一致性#例子#一个经典的组合例子就是食品的分类#Componentclass food_Component(object): def __init__(self): self.food_object={} self.i=0 def display_name(self): pass原创 2014-04-03 19:32:41 · 1009 阅读 · 0 评论 -
23种设计模式之python实现--Bridge模式
今天不知道为什么上午和下午一直不能写blog,现在才能编辑的,继续用python写设计模式吧#理解#为了将抽象和实现都能独立的变化#例子#就是用面试宝典上的一个例子吧,将笔和画出的线条进行分离,例如,用蜡笔做大中小,红绿蓝三种线条就需要9只笔#若是用毛笔,只需要3只毛笔,3种颜料即可,这样即使颜色增多也不会大量的增加笔类#implementorclass Implementor(o原创 2014-04-03 19:27:26 · 646 阅读 · 0 评论 -
23种设计模式之python实现--Decorator模式
#理解#动态的给一个对象添加额外的职责#例子#假如有一只会叫的dog,现在让它叫的时候会张嘴#Componentclass Animal(object): def speak(self): pass#ConcreateComponentclass dog(Animal): def speak(self): print 'wangwang原创 2014-04-03 19:29:48 · 678 阅读 · 0 评论 -
23种设计模式之python实现--职责链模式
#理解#职责链模式也是一个比较常见的模式,通过消息在处理模块的传递,将消息发送模块和各个处理模块解耦合#例子#这个模式的应用也是很多的,比如windows的消息机制,在产品保修时,如果当地的营销点,就会发回上一级的营销点,直到能够维修为止#Handlerclass Handler(object): successor=None def setSuccessor(self,原创 2014-04-19 09:06:22 · 667 阅读 · 0 评论 -
23种设计模式之python实现--Flyweight模式
#理解#运用共享技术,减少大量细粒度对象对存储的开销#例子#我们知道我们现在网上会注册很多帐号和密码,一些不重要的都是相同的,这样如果很多很多的话就会占用大量的空间#Flyweightclass Flyweight: def Operation(self): pass#ConcreateFlyweightclass password(Flyweight):原创 2014-04-04 16:32:44 · 660 阅读 · 0 评论 -
23种设计模式之python实现--代理(Proxy)模式
#理解#生活中的代理的例子很多很多,计算机方面代理的应用也很多,有多种多样的目的,这个UML图和Adapter模式有点像,不过侧重点完全不一样#例子#代理最简单的应用就是通过一个对象去控制另一个对象,当然代理可以做一些对被控制者的保护等等#subjectclass AbstractSubject: def resquest(self): pass#Realsub原创 2014-04-04 17:13:53 · 811 阅读 · 0 评论 -
23种设计模式之python实现--中介者模式
刚居然接到大众点评的电面了,20多天没一点消息,一下子接到电话一点准备也没有,唉,结果8分钟就把我挂了。还是继续写我的设计模式吧,这几天貌似脑袋进浆糊了,yi原创 2014-04-21 16:40:56 · 1165 阅读 · 0 评论 -
23种设计模式之python实现--解释器模式
#理解#python本身就是一种解释性的语言,通过python解释器解释问法,从而执行#例子#假设解析i = 1 ; i++ ; i++ ; i-- ; print k ;#分析#Contextclass Context: out=0 def __init__(self,str): self.str=str#Interpreter原创 2014-04-21 17:03:43 · 837 阅读 · 0 评论 -
23种设计模式之python实现
首语:一直想自己实现一下23种设计模式,没有时间,这几天心情不好,不停的想一个人,一点不想做其他的事,为了转移自己的注意力,就想着写点东西吧,这是我第一次在CSDN上写blog,也算是纪念她吧。前几天一直再看设计模式,也在学python,想着就用python实现吧,想想自己学了那么多的编程语言,其实所有的都一样,所有的语言都能实现其他语言所能实现的,只不过实现的难易程度不一样罢了。自己原创 2014-04-01 20:32:10 · 1436 阅读 · 0 评论 -
23种设计模式之python实现--visitor模式
http://my.oschina.net/coolwater/blog/27676原创 2014-04-26 00:28:10 · 1881 阅读 · 0 评论 -
23种设计模式之python实现--Memento模式
#理解#Memento模式的关键是不破坏封装#Originatorclass Originator: def __init__(self,sta): self.state=sta def SetMemento(self,Mem): self.state=Mem.getState() def CreateMento(self):原创 2014-04-19 12:58:38 · 870 阅读 · 0 评论 -
23种设计模式之python实现--Iterator模式
#理解#提供一种再不暴露内部的情况下,顺序访问对象元素的方式。#例子#这种模式已经存在很多的语言中了#iteratorclass iterator: index=0 def __init__(self,agg): self.agg=agg def First(self): self.index=0 def next(self原创 2014-04-19 09:08:33 · 721 阅读 · 0 评论 -
23种设计模式之python实现--抽象工厂
#理解#Abstract_Factory模式是Factory的扩展,#Factory用于生产一类产品而抽象工厂用于生产多个产品系列#例子:#两个工厂,一个生产狗玩具,一个生产猫玩具,而玩具共有两类一类机器玩具,一类毛绒玩具class Abstract_Factory: def __init__(self,factory=None): self.toy_factor原创 2014-04-01 20:49:41 · 799 阅读 · 0 评论 -
23种设计模式之python实现--单例模式
好了,今天就先实现这几个模式吧。#理解#世界上有一些东西是唯一的,比如地球,或者如果一个办公室只用一台打印机,那这台打印机也是唯一的#例子:实现只有一个地球class Singleton(object): def __new__(cls,*args,**kw): if not hasattr(cls, '_instance'): old=s原创 2014-04-01 21:00:16 · 770 阅读 · 0 评论 -
23种设计模式之python实现--builder模式
她走了,两天了,感觉好像过了两个月似得,还是继续写代码吧,这样才能让时间过的快一点,下午还要大众点评的面试,这几天对她想念,明显已经影响了我,现在只能默默的关注她吧,好了,又说了这么多废话,还是进入正题吧。#理解#个人理解builder模式的重点就是聚合,就像我们新建一个工程的时候有一些向导,#跟着这些向导,通过不同的选项,其中前面的选项可能影响后面的出现的向导,#最终得出不同的模版,也原创 2014-04-02 13:51:15 · 1225 阅读 · 0 评论 -
23种设计模式之python实现--观察者模式
前几天,家里出了点事,一下这中断了写作原创 2014-04-18 09:53:24 · 591 阅读 · 0 评论 -
23种设计模式之python实现--Strategy模式
#理解#策略模式与模版模式相似,不同的是Strategy模式,将抽象接口封装到了另一个类#Strategyclass Strategy: def AlgrithmInterface(self): pass#ConcreteStrategyclass ConcreteStrategyA(Strategy): def AlgrithmInterface(sel原创 2014-04-18 10:50:02 · 687 阅读 · 0 评论 -
23种设计模式之python实现--State模式
#理解#事物往往有多种状态,对于每一种状态,响应同一种输入的反应不同,最典型的是有限状态机#与策略模式不同的是State模式关注的是状态,将每一种状态封装,简化复杂的switch或驱动表对状态机的维护#例子#我们知道水有三种状态,冰,水,水汽,而且在加热或冷却的操作下会相互转化class state: def heat(self,con): pass de原创 2014-04-18 10:40:43 · 2493 阅读 · 0 评论 -
23种设计模式之python实现--Template模式
#理解#就是普通通过继承实现多态的方法,对于通用操作在父类中实现,不同操作的细节在子类中实现,父类只声明接口#注意的是要遵循DIP原则#例子#灯泡发光,不同的灯泡发不同的光#AbstractClassclass AbstractClass: def TemplementMethod(self): self.operator1() self.op原创 2014-04-18 10:46:03 · 652 阅读 · 0 评论 -
23种设计模式之python实现--Prototype模式
#理解#原型与工厂模式的区别应该是少一个与与产品平行的工厂类,通过克隆自己,可以创造多个对象#例子#有一个哺乳动物的原型,每个动物有名称,#人有很多,所以有很多Object,我们通过clone得到人的对象,然后在附上不同属性#猴子也有很多,我们也可以通过clone得到多个猴子class Prototype(object): typename='mammalian' de原创 2014-04-02 17:44:55 · 1213 阅读 · 0 评论 -
23种设计模式之python实现--Adapter模式
截至上一篇我们已经把创建型的设计模式实现了,从这篇blog开始,就是结构型的模式了,第一篇就写适配器模式吧。Adapter模式有两种实现方式一种是类方式。#理解#就是电源适配器的原理吧,将本来不兼容的接口类能够工作#这个是类实现方式#例子#假如一个插座类输出脚是3脚的,而台灯需要的是两脚插座,现在就需要一个Adapter实现适配插座#Adapteeclass socket(o原创 2014-04-02 22:00:52 · 2200 阅读 · 0 评论 -
23种设计模式之python实现--command模式
#理解#模式的关键是将命令的封装#例子#将碰到句号自动分行和撤销的命令class Command: def __init__(self,rev): self.rev=rev def execute(self): pass def undo(self): passclass Concreate(Command):原创 2014-04-19 08:59:41 · 652 阅读 · 0 评论 -
23种设计模式之python实现--总结
说的写总结,结果因为找实习,搬家拖了半个多月,不过也没关系了,就是自己写给自己看的,到以后想看的时候翻出来看一看,也算是一种怀念。先说说python吧,人们都说C/C++程序员相对来说python比较熟悉,我的感觉也是,感觉如果有C基础,加上C++的面向对象的理解,很快的就能变成一个pyer。当然任何一种语言,只要是比较成熟的语言都可以互相实现另一种语言的功能。但是如果做一个系统一般都要几种语原创 2014-05-19 00:03:02 · 3497 阅读 · 0 评论