桥接模式:就是两个类互补包含(引用),但是通过接口传递参数,可以实现调用不同的类,达到了解耦合的目的!
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'ming'
"""
大话设计模式
设计模式——桥接模式
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化.
程序实例:手机软件的分类 和 手机品牌的分类 耦合度低 两种分类中间用一个set_handsetsoft桥接,各自的变化,不影响其他分类
"""
#抽象手机类
class Handsetsoft(object):
def run(self):
pass
#具体软件
class Handsetgame(Handsetsoft):
def run(Handsetsoft):
print "手机游戏"
#手机通讯录类
class Handsetaddresslist(Handsetsoft):
def run(self):
print "通信录"
#抽象手机品牌类
class Handsetbrand(object):
def __init__(self):
self.soft =""
def set_handsetsoft(self,soft):
self.soft =soft
def run(self):
pass
#手机品牌N
class HandsetbrandN(Handsetbrand):
def run(self):
self.soft.run()
#手机品牌M
class HandsetbrandM(Handsetbrand):
def run(self):
self.soft.run()
if __name__ =="__main__":
#首先产生游戏 和 通讯录对象,不依赖任何手机
game =Handsetgame()
address =Handsetaddresslist()
#产生手机类,传参数链接两个类,调用软件类的方法
N=HandsetbrandN()
N.set_handsetsoft(game)
N.run()
M =HandsetbrandM()
M.set_handsetsoft(address)
M.run()