概述
在游戏开发的过程中,我们会分很多很多的模块。每个模块之间我们尽量的要做多这个模块的代码不要污染到其他模块的代码。
代码耦合弊端
- 不然你模块写了你的代码,我又在你的模块中增加了我的逻辑代码,那么这个时候模块出现bug了,你说是你的问题还是我的问题?
- 而且在思维逻辑上也不应该模块耦合太多,不然后面策划说要大改,这个时候明明不是你的模块的工作量,也会变成你也要去处理。
- 再者明明的一个模块的代码,应该要归集到同一个地方处理,这样后面别人看你代码就不用到处去各个模块中找你的代码逻辑了。
解决方案
那么模块之间的解耦和就很有必要。而我们学过的23中设计模式中,观察者模式就很符合我们需要的解决方案了。
观察者模式UML图如下:
如上图所示,观察者模式主要涉及到抽象主题角色、具体主题角色、抽象观察者角色、具体观察者角色等四种角色:
- 抽象主题(Subject)角色:主题角色把所有对观察者对象的引用保存在一个集合(比如 Vector对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者( Observable)角色,一般用一个抽象类或者一个接口实现。
- 具体主题(ConcreteSubjec