zoukankan      html  css  js  c++  java
  • Interface Project

    比如下面的例子:

    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! 

  • 相关阅读:
    mysql qps tps
    SQL RIGHT JOIN 关键字
    C#的多态性
    c# 与java之间的简单区别
    多少行转多少列
    SQL语句中&、单引号等特殊符号的处理
    sql 函数的理解
    c# 基础之数组(包含三维数组)
    泛型之Dictionary
    在十六进制字符串与数值类型之间转换
  • 原文地址:https://www.cnblogs.com/taoxu0903/p/1995756.html
Copyright © 2011-2022 走看看