桥接模式:就是两个类互补包含(引用),但是通过接口传递参数,可以实现调用不同的类,达到了解耦合的目的!

#!/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()


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐