代码之家  ›  专栏  ›  技术社区  ›  Svante Svenson

用于构建分离对象的接口库

  •  1
  • Svante Svenson  · 技术社区  · 15 年前

    我希望开源程序集 界面 (但没有实现)一些常见的东西,比如日志、ioc/di等等。如果存在这种情况,就更容易混合和匹配零碎的东西,而不必编写太多的粘合代码。

    示例:如果存在这种情况,我可以创建一个asp.net mvc应用程序,并添加任何orm、日志和ioc框架。然后我可以引用第三方程序集,其中包含控制器和模型,它们可以很好地一起使用。如果我编写自己的接口,我将不得不修改其中的每一个。我不想修改,我想1。请进,2。配置和3。使用!这么简单,不应该更难。

    你听说过/用过/写过这样的东西吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Nader Shirazie    15 年前

    有个项目叫 Common Infrastructure Libraries for .NET 看起来和你要的很像。但此时,只有日志抽象可用。

    正如mark所建议的,定义自己的接口并不是一件坏事——那么您的接口对您的应用程序和用例都是有意义的。如果稍后发现某个概念/组件的开源、通用抽象,那么您可以重构代码以使用它,或者简单地将其修改为现有的接口。

    虽然在理论上,一个共同的抽象是一个好主意-现在,对于许多“共同的事物”,还没有一个公认的“共同的方法”。

        2
  •  0
  •   Mark Seemann    15 年前

    我认为不存在这样的集会。如果幸运的话,您决定使用的库定义了它们自己的接口,然后它们将实现这些接口,例如实现iwindsorcontainer接口的windsor容器。

    但是,如果要使用不同的di容器,则不能重用该接口,因为structuremap不实现iwindsorcontainer。

    无论如何,我不明白这样一个图书馆有什么意义。你可以在几分钟内编写一个界面。不是接口占用了您的开发时间,而是实现。

    在自己的应用程序中定义所需的任何接口—在这种情况下,它们也将更具针对性,并且具有较少的冗余,因为您只需要精确定义该应用程序所需的属性和方法。

        3
  •  0
  •   Svante Svenson    15 年前

    IoC框架可以使用通用SeroCotoCube解耦: http://www.codeplex.com/CommonServiceLocator