现在的位置: 首页 > 综合 > 正文

Interface Project

2012年10月15日 ⁄ 综合 ⁄ 共 716字 ⁄ 字号 评论关闭

比如下面的例子:

projectStatusBar -->(refer to)projectApplication,因为它需要取到application level的一些数据(似乎不大合理,不应该这样依赖);现在需要给application对象增加一个新的成员变量mStatusBar,这就造成了新的dependency关系:projectApplication--> projectStatusBar。这就出现了circular dependency。

解决方法非常普通并且普遍 :

1. (假设并且一定已经)有一个interface project,它的任务就是包含一堆interface。我在里面加一个IStatusBar并定义需要在application类里使用的功能。

2. 在application里加个成员变量时IStatusBar类型。这样ProjectApplication-->interface project. 有其他人(code out of this project)会赋值给它。

3. 在projectStatusBar里,让StatusBar实现IStatusBar,这样ProjectStatusBar --> interface Project.

4. 在另外一个project里,把StatusBar实例赋值给application对象。那么这个project --> ProjectApplication + ProjectStatusBar。这种作用的project应该很容易找到,比如ProjectStatusBar就足够了。

5. Now it works without bringing in circular dependency relationship! 

抱歉!评论已关闭.