gpt4 book ai didi

.net - 温莎城堡有什么缺点吗?

转载 作者:行者123 更新时间:2023-12-03 07:54:35 25 4
gpt4 key购买 nike

我一直在研究城堡项目,特别是温莎。我对这项技术的可能性印象深刻,拥有这样一个松散耦合系统的好处是显而易见的。我唯一不确定的是使用这种方法是否有任何缺点,特别是在 asp.net 中?例如性能命中等。

我试图让我的开发人员在这里看到这种方法的好处,并受到以下复出的打击:

  • 那就是使用反射,每次从容器调用对象时,都必须使用反射,因此性能会很糟糕。 (是这样吗?每次调用都使用反射吗?)
  • 如果我依赖接口(interface);如何处理具有附加到类上的额外方法和属性的对象? (通过继承)
  • 最佳答案

    要回答您的问题:

    1. That is using reflection and each time that an object is called from the container, reflection must used so performance will be terrible. (Is this the case? does it use reflection on every call?)

  • 不,不是的。大多数情况下,当您注册组件时,它很少使用反射。当你第一次从容器请求组件时,它也可能在生成代理类型时使用反射。

    1. If I am relying on Interfaces; how do I deal with objects that have extra methods and properties which have been tacked onto the class? (through inheritance)

  • 这都是设计问题。您不想让容器创建每个对象。您主要将其用于服务依赖项。在这种情况下,您并不关心实际上隐藏在接口(interface)后面的是什么类型(这就是它的全部意义,不是吗?)。

  • 您也可以拥有类组件,但它们有限制,您必须了解这些限制(例如,您不能拦截对非虚拟方法的调用)。我发现 Windsor 是最成熟的,最适合我的开发容器风格。

    除此之外,Performance,我还没有听说过因为 Not Acceptable 性能而不得不丢弃依赖容器的项目。 Windsor 真的很聪明,它缓存了冗长操作的结果,这样你就不必付出两次代价。
    您可以在 Internet 上找到图表,比较许多 IoC 容器的速度。关于这些需要注意两点:所有容器都非常快。
    不要认为其他容器在这些图表上比 Windsor 更快的事实意味着它们更好。 Windsor 为您做了很多其他容器没有的事情。

    关于.net - 温莎城堡有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388355/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com