我保持一个应用程序,它已经设计这样的:

messy code --abuses--> simplePoco (POCO data capsule)

数据胶囊是一个简单的类有很多的吸气,并制定者(性)它使用一个DI框架和一贯使用国际奥委会的容器提供实例的数据胶囊的(幸运我!)。

问题是,我要引入一个"变通"机制成的 simplePoco

messy code --abuses--> simplePoco 
               |
               V
         changes logger,
         status monitor
     (I wanna know about changes)

我有几个选择:

  • 介绍一个 IPoco 和修改的杂乱的代码,这样我就可以有 simplePoco 速度或 notifyingPoco 当我想改变通知(有选择性地缓慢的)?或者...

  • 让一切虚拟的滚是我自己定制 notifyingPoco 舱的顶上 simplePoco (甚至速度较慢)?

  • 设计图案,我不知道吗?

它是一个客户/服务器系统,但我只是修改该服务器的一部分,所以如果可能的话,我宁愿 触摸的杂乱的代码或客户代码(有序列化程序和反思和可怕的忍者的东西...)为不小心打破任何东西。

将使用一个接口,可以防止JIT从内联的呼吸气/器?

什么是最好的方法去考虑,simplePoco实例 严重 滥用?

有帮助吗?

解决方案

任何种类的虚拟电话(无论是口或直接在一个类 所有 接的电话都是虚拟的!) 不会可通过内联CLR JIT。这就是说,接电话是速度稍慢,因为他们总是必须通过潜在-远程/代理路径,并且因为它们必须转移 this-指点在开始类在进入身体的功能。虚拟的电话直接上级成员从来没有做移位,并且,除非该类是来自 MarshalByRefObject, ,不要打的代理检查。

这就是说,性能差别之间这两个都是很轻微的,所以你也许应该忽略他们,并侧重于清洁的设计和易于实施,而不是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top