适配器模式

适配器模式

在软件设计中,为了解决接口不一致的问题,两个软件模块之间往往需要通过一个适配器类 Adapter 进行“适配”。这样的模式叫做适配器设计模式。该模式可以分为两种,分别为类适配器模式(Class Adapter Pattern)和对象适配器模式

类适配器

from abc import ABCMeta,abstractmethod

class FlyAnimal(metaclass=ABCMeta):
    @abstractmethod
    def fly(self):
        pass

    def run(self):
        pass

class Bird(FlyAnimal):
    def fly(self):
        print("鸟在飞")
    def run(self):
        print("鸟在跑")

class Dog:
    def run(self):
        print("狗在跑")

class AnimalAdapter(Dog,FlyAnimal):
    def __init__(self):
        self.dog = Dog()
    def fly(self):
        print("我也能飞了")


AnimalAdapter().fly()
AnimalAdapter().run()
AnimalAdapter().dog.run()
# 我也能飞了
# 狗在跑
# 狗在跑

对象适配器

class FlyAnimal(ABC):
    @abstractmethod
    def fly(self):
        pass

    def run(self):
        pass

class Bird(FlyAnimal):
    def fly(self):
        print("鸟在飞")
    def run(self):
        print("鸟在跑")

class Dog:
    def run(self):
        print("狗在跑")

class AnimalAdapter(FlyAnimal):
    def __init__(self):
        self.dog = Dog()
    def fly(self):
        print("我也能飞了")
    def run(self):
        self.dog.run()

AnimalAdapter().fly()
AnimalAdapter().run()
AnimalAdapter().dog.run()
# 我也能飞了
# 狗在跑
# 狗在跑
posted @ 2025-02-02 22:44  且任荣枯  阅读(10)  评论(0)    收藏  举报