gpt4 book ai didi

c# - Unity 记录静态方法 AOP 风格或无接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:39 26 4
gpt4 key购买 nike

使用 PostSharp 我可以登录 AOP 风格(通过使用属性)静态方法或类的方法而不是实现接口(interface)。我可以使用 Unity 做到这一点吗 - 以 AOP 风格登录而不用接口(interface)?

最佳答案

使用 Unity 无法做到这一点。 Unity 是一个依赖注入(inject)容器,其背后的整个想法是符合 Dependency Inversion Principle这基本上意味着您针对抽象而不是实现进行编程。抽象编程意味着您使用抽象类型或接口(interface),而这些不能是静态的!

有些人认为这就是为什么 DI 不好,而像 PostSharp 这样的工具是软件开发中的 chalice ,但是如果您使用静态类编写完整的应用程序,您将遇到比像 PostSharp 这样的工具可以解决的更多麻烦.这一切都始于良好的软件设计和 SOLID principles为做到这一点提供重要指导。

如果您遵守 SOLID 原则,您将自动获得 do one thing 的实例类, use Dependency Injection , 是 easy to extend并隐藏在thin interfaces后面.这导致软件可测试、可维护和可组合。当您以这种方式设计系统时,几乎没有理由恢复到像 PostSharp 这样的工具。将 AOP 应用于围绕 SOLID 原则设计的系统很容易。另请查看这两个(herehere)相关问题。

关于c# - Unity 记录静态方法 AOP 风格或无接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26043940/

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