适配器模式

适配器模式

在软件设计中,为了解决接口不一致的问题,两个软件模块之间往往需要通过一个适配器类 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 @   且任荣枯  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示