【发布时间】:2013-05-12 09:57:36
【问题描述】:
我有一个在编译期间根据构建配置实例化的对象。就所考虑的周围软件而言,该对象公开了相同的接口。我想模拟在编译期间做出实例化决定的事实(即static polymorphism),而不是通常的动态多态性。
有没有办法描述UML class diagram 中的静态多态性?
这或多或少是我需要的:
显然,只有上述类型定义之一将在编译时被实例化。
【问题讨论】:
-
接口上的方法调用者在编译时是否知道要调用哪个显式子类实现?如果是这样,这是如何实现的?
-
@flup - 不,他们不知道。否则,多态性的全部目的就会丢失。显式实现源自构建环境配置。
-
如果我没听错的话,调用者被编译为使用接口,调用的具体函数是在运行时确定的。所以它是动态/子类型多态性。编译时发生的是依赖注入?
-
@flup 不,具体的实现是在编译时根据每个构建配置不同的预处理器标志决定的。两种实现的接口是相同的。
标签: polymorphism uml class-diagram static-polymorphism