設計模式之十二--橋接模式

橋接模式:將抽象部分與他的實現部分分離,是他們都可以獨立變化。
PC上之所以能夠硬件不用關心軟件,軟件也不用關係硬件。都是接口的功勞。統一標準,針對接口編程。 HAL層的應用。
當我們的設計中出現多對多的關係,並且可以分成兩層處理的時候就可以考慮使用這種設計模式來處理。以下是針對,手機品牌和手機軟件爲例來進行編程。

from abc import ABCMeta, abstractmethod


class PhoneBrand(metaclass=ABCMeta):

    def __init__(self):
        self.soft = None

    def set_soft(self, soft):
        self.soft = soft

    @abstractmethod
    def run(self):
        pass


class IPhone(PhoneBrand):
    def __init__(self):
        super(IPhone, self).__init__()

    def run(self):
        self.soft.run()


class Nokia(PhoneBrand):

    def run(self):
        self.soft.run()


class PhoneSoft(metaclass=ABCMeta):
    @abstractmethod
    def run(self):
        pass


class PhoneGame(PhoneSoft):
    def run(self):
        print("Running PhoneGame")


class PhoneContact(PhoneSoft):
    def run(self):
        print("Running PhoneContact")


if __name__ == "__main__":
    iphone = IPhone()

    iphone.set_soft(PhoneGame())
    iphone.run()

    iphone.set_soft(PhoneContact())
    iphone.run()

    nokia = Nokia()

    nokia.set_soft(PhoneGame())
    nokia.run()

    nokia.set_soft(PhoneContact())
    nokia.run()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章