大纲 | 小结 |
---|---|
基础准则 | 基础准则 |
创建型模式 | 单例模式 |
- | 原型模式 |
- | 简单工厂模式 |
- | 抽象工厂模式 |
- | 建造者模式 |
结构型模式 | 代理模式 |
- | 适配器模式 |
- | 桥接模式 |
- | 装饰器模式 |
- | 门面/外观模式 |
- | 享元模式 |
- | 组合模式 |
行为型模式 | 模板方法模式 |
- | 策略模式 |
- | 命令模式 |
- | 职责链模式 |
- | 状态模式 |
- | 观察者模式 |
- | 中介者模式 |
- | 迭代器模式 |
- | 访问者模式 |
- | 备忘录模式 |
- | 解释器模式 |
桥梁模式是在不破坏封装的前提下解决抽象和实现都可以独立扩展的模式。
将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,这增加了系统的理解与设计难度。
import abc
class IClsA(metaclass=abc.ABCMeta):
@abc.abstractmethod
def func(self):
pass
class ClsA(IClsA):
def func(self):
print('clsa do sth')
# return super().func()()
class IBridge(metaclass=abc.ABCMeta):
@abc.abstractmethod
def __init__(self, a:IClsA):
pass
@abc.abstractmethod
def deal(self):
pass
class Bridge(IBridge):
def __init__(self, a:IClsA):
# super().__init__()
self.a = a
pass
def deal(self):
print('deal with bridge')
self.a.func()
pass
if __name__=="__main__":
b = Bridge(ClsA())
b.deal()
网友评论