python实现Bridge模式

来源:互联网 发布:全国十大淘宝村集群 编辑:程序博客网 时间:2024/05/17 07:15
#-*-coding:utf-8-*-


'''
意图:将抽象部分与它的实现部分分离,使它们都可以独立地变化,适用于客户要求不断地变化
1,将原抽象部分中实现部分写到一个类中
2,原抽象部分有一个指向实现部分的接口
'''
from abc import ABCMeta

class Abstraction(): #抽象部分
    __metaclass__ = ABCMeta
    def __init__(self):
        pass
    def operation(self):
        pass
    
class RefinedAbstraction(Abstraction):
    def __init__(self, imp):
        self._imp = imp
    def operation(self):
        self._imp.operation()
        
class AbstractionImp(): #实现部分
    __metaclass__ = ABCMeta
    def __init__(self):
        pass
    def operation(self):
        print 'AbstractionImp...imp...'

class ConcreteAbstractionA(AbstractionImp):
    def operation(self):
        print 'ConcreteAbstractionImpA...'

class ConcreteAbstractionB(AbstractionImp):
    def operation(self):
        print 'ConcreteAbstractionImpB...'
        
if __name__ == "__main__":
     impA = ConcreteAbstractionA()
     absA = RefinedAbstraction(impA)
     absA.operation()
     
     impB = ConcreteAbstractionB()
     absB = RefinedAbstraction(impB)
     absB.operation()