行為型模式--桥接模式

 

将需求分离各部份使它们可各自独立变化,之後再透过接口传递参数來引用以实现调用以達到解耦之目的,如將手机依软件和品牌作分类以便降低耦合程度,再讓两种分类以方法透過參數傳遞來引用以最終組合手機之整体需求,此桥接模式可讓需求分离成各分类以可獨自变化且不影响其他分类以降低耦合程度。

UML类图

示例

#!/usr/bin/env python

# -*- coding:utf-8 -*-

Import abc

class Handsetsoft(object):               #軟件抽象基类

          @abc.abstractmethod

    def run(self):

        raise NotImplementedError

   

class Handsetgame(Handsetsoft):                   #软件具体子類1

    def run(self):

        print("手机---游戏")

 

class Handsetaddress(Handsetsoft):      #软件具体子類2

    def run(self):

        print("手机---通信录")

 

class Handsetbrand(object):           #品牌抽象基类

    def __init__(self):

        self.soft =""

 

    def set_handsetsoft(self,soft):         #soft傳參代表要引用之軟件对象

        self.soft =soft

 

          @abc.abstractmethod

    def run(self):

        raise NotImplementedError

 

class HandsetbrandN(Handsetbrand):             #品牌具体子类N

    def run(self):

        self.soft.run()

 

class HandsetbrandM(Handsetbrand):           #品牌具体子类M

    def run(self):

        self.soft.run()

實際業務邏輯之場景如下:

if __name__ =="__main__":

    #實例化軟件对象

    game =Handsetgame()

    address =Handsetaddress()

   

    #實例化品牌对象,並透過传参來链接两个类使之可调用软件对象的方法

    N=HandsetbrandN()

    N.set_handsetsoft(game)

    N.run()

 

    M =HandsetbrandM()

    M.set_handsetsoft(address)

    M.run()

輸出:

手机---游戏

手机---通信录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值