二十三种设计模式:适配器模式篇(Python)

匿名 (未验证) 提交于 2019-12-02 22:11:45

二十三种设计模式:适配器模式篇Python


(1)介绍
适配器模式(Adapter Pattern),一种常用设计模式,属于创建型模式。
即为不兼容的接口打造桥梁,将一个类的接口转换成其他类所需的接口。
(2)解决问题
已有的接口放入新场景的不兼容性
(3)使用场景
创建高度重用性的类,使用适配器可放入不同场景。
已有接口的引入,使用适配器引入已有接口,不用重新构造啦。
嫁接,使用适配器可把A嫁接到B中(AB本来毫无关联)比如狼和人,狼人。
(4)核心
适配器要继承已有对象,来实现接口功能。
(5)代码
结构:将一个类的接口转换成其他类所需的接口
内容:黑暗的降临(新场景),需要人类的反抗,但女人力气弱小拿不起铁制狼牙棒(已有武器类),男人力气大可以拿起来。一位贤者,伟大的赫尔麦吉德(程序员)创造了一种神之手套(适配器),它可以让女人也拿起铁制狼牙棒。

 #人类 class Person(object):     def __init__(self):         pass     def connect_weapon(self,weapon):         pass #实例化人类A class Girl(Person):     def connect_weapon(self,weapon):         print('女生只能拿起木制狼牙棒,要想拿起铁制狼牙棒,可能我需要一双手套')         weapon.connect_wood() #实例化人类B class Man(Person):     def connect_weapon(self,weapon):         print('男子汉是不用手套的,快点拿起铁制狼牙棒吧')         weapon.connect_iron()  #手套类 class Glove(object):     def __init__(self):         self._weapon = IronWeapon()     def connect_wood(self):         print('我戴上了手套,我可以拿起铁制狼牙棒了')         self._weapon.connect_iron()  #武器类 class Weapon(object):     def __init__(self):         pass #实例化武器类 class IronWeapon(Weapon):     def connect_iron(self):         print('装备了铁制狼牙棒')  ''' A对象调用连接方法,参数是适配器 适配器调用连接方法,参数是B对象 也可适配器内部直接实例化B对象 A-适配器-B  -------这就是适配器 ''' if __name__ == '__main__':     Rose = Girl()           #实例化Rose这个人     iron1 = IronWeapon()   #实例化铁制狼牙棒     glove = Glove()         #实例化手套     Rose.connect_weapon(glove)#Rose戴上手套      Jack = Man()            #实例化Jack这个人     iron2 = IronWeapon()   # 实例化铁制狼牙棒     Jack.connect_weapon(iron2)  

(6)优点
类的重用性
关联两个不同的类
灵活性强

文章来源: https://blog.csdn.net/weixin_41901939/article/details/90522068
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!