设计模式之装饰模式

定义:动态地为对象添加新功能。其实对于Python来说,装饰模式一点都不陌生,Python中的装饰模式随出可见,Python中的装饰器都是装饰器模式。 关于装饰器的部分,我在 装饰器学习 这篇文章中介绍了,下面写一个简单的装饰模式。

Python实现:

class Calcute(object):

def add(self,a,b):
    return a+b


class decorator():

    def __init__(self,decorated_class):
        self.decorated_class = decorated_class

    def add(self,a,b):
        c = self.decorated_class.add(a,b)
        print 'the result is %d' % c
        return c


cal = Calcute()
dec = decorator(cal)
print dec.add(1,2)

应用场景:当我们需要扩展一个旧类中的新功能时,直接的方法是向旧类添加新的功能,新的逻辑等等,这就会增加该类的复杂性,最好的方法就是写一个新类,实现新的功能。

--------EOF---------
微信分享/微信扫码阅读