Brief | 概要
桥接模式是一种很实用的结构性设计模式,如果系统中某个类存在两个独立变化的维度,通过桥接模式可以将这两个维度分离出来,使两者可以独立扩展。
很多情况下,桥接模式可以取代多层继承,极大地减少了子类的数量。
Unity的Logger模块就应用了桥接模式,我们来看看Unity引擎开发者是怎么做的吧!
Structure | 结构
Let’s see the source code | 看看源码
我们先来了解下背景:
Unity有一个Debug.Log方法,开发者可以通过调用它来输出日志。
现在思考一个问题:
Unity是不开源的(所以开发者不可能去修改源码。就算开源也不推荐直接改源码,记住设计模式有原则:对拓展开放,对修改关闭),如果你是Unity引擎的开发者,
你将如何组织你的代码,让开发者可以实现自定义Log—
这里有两个维度的变化:
- Log到哪里(比如可以输出到编辑器