程序集的依赖关系
有 程序集 A B C
情况一:
在程序集A 中,编写 类base
在程序集B 中,编写 类Sub:base
在C中, 编写 类Application, 其中 实例化Sub
此时, ABC的引用关系为, B引用A, C引用A与B
情况二:
在程序集A 中,编写 类base
在程序集B 中,编写 类Sub, 其中 实例化 base
在C中, 编写 类Application, 其中 实例化Sub
此时, ABC的引用关系为, B引用A, C此时仅需引用B(而无需引用A)
这是,什么原理?
------解决方案--------------------我觉得应该是,因为在第一种情况下,Sub是Base的子类,那么Sub中就会有可能override(当Base中的方法为virtual时),或者implement(当Base中的方法为abstract时) Base中的方法,而这个方法的定义是在Base中的。然而,Application要用Sub,就必须要知道这些方法/属性等的定义,因此Application也要引用A。
第二种情况,由于Base是Sub的一个component,即使Sub中公布了Base对象的某些方法或者属性,那它也只不过是一个wrapper,即仅仅是将调用转发给自己肚子里的Base,这样一来,Application根本不需要知道Base的细节,因为它被Sub封装了。
------解决方案--------------------