13 使用uml分析几种设计模式 13.1 单例 singleton 13.2 观察者 observer 13.3 模板方法 template method 13.4 组合 composite 13.5 装饰 decorator 13.6 适配器 adepter 13.7 代理 proxy
分类:
其他好文 时间:
2016-02-17 00:44:19
阅读次数:
191
一、模式解析 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式的要点主要是: 1、需要对已有对象扩展新的功能,又不希望改变原有对象接口; 2、装饰者对象与原有对象需要继承相同接口,初始化装饰对象时将原有对象传入装饰对象; 3、可
分类:
其他好文 时间:
2016-02-16 23:24:13
阅读次数:
171
这是利用decorator实现的功能decorator是接受一个函数作为参数,并返回一个函数@log写在函数定义处实现的功能是nows=log(nows)这里我写的@log(‘nihao‘)相当于nows=log(‘nihao‘)(nows)这里写了没有使用到首先执行log(‘nihao‘)这个函数返回wrapp这个函数然后在调用wrapp这个函数..
分类:
编程语言 时间:
2016-02-16 17:02:21
阅读次数:
286
一、什么是适配器 适配器是将一种接口改造成另外一种接口的一个包装类; 二、补充说明 有两种实现方式,一种是通过继承,另外一种通过组合; 使用组合实现的时候,跟装饰者模式有点类似,不过侧重点不同,装饰者模式是给对象增加新行为,适配器是为了适配接口; 优点:符合开闭原则;适配者类和目标类解耦;代码复用;
分类:
其他好文 时间:
2016-02-13 23:05:26
阅读次数:
160
def home(name): print('你又来啦') print(name)def login(func): def inner(name): print('pass') return func(name) return innerdef login1(a,b): def inner(name
分类:
编程语言 时间:
2016-02-12 11:43:29
阅读次数:
230
1 import sys 2 3 ''' 4 当使用实例对象访问属性时,都会调用__getattribute__内建函数 5 __getattribute__查找属性的优先级 6 1、类属性 7 2、数据描述符 8 3、实例属性 9 4、非数据描述符 10 5、__getattr__() 11 12
分类:
编程语言 时间:
2016-02-11 20:22:51
阅读次数:
434
迭代器 迭代器规则 迭代:重复做一些事很多次,就像在循环中那样。 不仅可以对字典和序列进行迭代,还可以对其他对象进行迭代:只要该对象实现了__iter__方法。 __iter__方法会返回一个迭代器(iterator),所谓的迭代器就是具有next方法(这个方法在调用时不需要任何参数)的对象。在调用
分类:
编程语言 时间:
2016-02-10 15:23:08
阅读次数:
445
一、迭代器 迭代器 适合遍历一些巨大或无限的集合,如几个G的文件! 迭代器的特点: 1、访问者不用关心迭代器的内部结构,仅需要通过next()方法不断地去取下一个内容! 2、不能随机访问集合中的,某个值,只能从头到尾访问! 3、访问到一半时不能往回退! 4、便于循环比较大的数据集合,节省了内存! 1
分类:
其他好文 时间:
2016-02-09 17:47:27
阅读次数:
260
一、初入装饰器1、首先呢我们有这么一段代码,这段代码假如是N个业务部门的函数1deff1(aaa):
2print(‘我是F1业务‘)
3ifaaa==‘f1‘:
4return‘ok‘
5
6deff2(aaa):
7print(‘我是F2业务‘)
8ifaaa==‘f2‘:
9return‘ok‘这里呢也就是当我们调用上面的函数的时候,传入值给aaa,当aaa的值..
分类:
编程语言 时间:
2016-02-09 08:13:16
阅读次数:
329