桥接模式(python)
来源:互联网 发布:哪个软件买书最便宜 编辑:程序博客网 时间:2024/05/22 05:08
"""桥接模式把对象的抽象部分和实现部分分离开来,使他们能独立变化如果一个对象可以进行多角度分类,那么就把多角度分离出来,让他们独立变化,减少耦合"""from abc import ABCMeta, abstractmethodclass Skin(object): __metaclass__ = ABCMeta def __init__(self): pass @abstractmethod def has_skin(self): passclass YellowSkin(Skin): def __init__(self): super(YellowSkin, self).__init__() def has_skin(self): print("有黄皮肤")class WhiteSkin(Skin): def __init__(self): super(WhiteSkin, self).__init__() def has_skin(self): print("有白皮肤")class Old(object): __metaclass__ = ABCMeta def __init__(self): pass @abstractmethod def is_old(self): passclass Kid(Old): def __init__(self): super(Kid, self).__init__() def is_old(self): print("是小孩")class Older(Old): def __init__(self): super(Older, self).__init__() def is_old(self): print("是老人")class AreaPeoPle(object): __metaclass__ = ABCMeta def __init__(self, skin=None, old=None): self.skin = skin self.old = old def set_skin(self, skin): self.skin = skin def set_old(self, old): self.old = old @abstractmethod def show(self): passclass Chinese(AreaPeoPle): def __init__(self, skin=None, old=None): super(Chinese, self).__init__(skin, old) def show(self): print("我是一个中国人") self.skin.has_skin() self.old.is_old() print("")class American(AreaPeoPle): def __init__(self, skin=None, old=None): super(American, self).__init__(skin, old) def show(self): print("我是一个美国人") self.skin.has_skin() self.old.is_old() print("")if __name__ == '__main__': yellow = YellowSkin() white = WhiteSkin() kid = Kid() older = Older() chinese = Chinese(yellow, kid) chinese.show() american = American(white, older) american.show()
0 0
- 桥接模式(python)
- 桥接模式(python)
- 设计模式十一(桥接模式,python 语言实现)
- python设计模式之桥接模式
- Python设计模式(四)【桥接模式】
- Python设计模式-桥接模式
- python设计模式之桥接模式
- Python设计模式——桥接模式
- Python的结构型设计模式之桥接模式
- 设计模式之桥接模式Python实现
- python设计模(桥接模式)
- 装饰模式(python)
- 代理模式(python)
- 原型模式(python)
- 代理模式(python)
- 装饰模式(python)
- 代理模式(python)
- 策略模式(python)
- 在SSH中占位符的使用
- VS编译环境中TBB配置和C++中lambda表达式
- task_struct(进程描述符)
- BloomFilter
- 配置xml避免Spring加载两次bean
- 桥接模式(python)
- tcp过程
- c++ List(双向链表)
- Android开发——Material Design系列之TextInputLayout
- 机器学习笔记一:感知机
- hdu Employment Planning(DP)
- 设计模式--策略模式
- 【ARM-Linux开发】如何使用opkg在RicoBoard上在线安装软件包
- javascript年月份计时器简易制作