C# 将来自多个源的数据与非标准API集成在一起的系统使用了什么典型模式?

C# 将来自多个源的数据与非标准API集成在一起的系统使用了什么典型模式?,c#,design-patterns,C#,Design Patterns,我以前从来没有问过这么一般的问题,我不确定这听起来是否像是我在要求别人为我工作。我是一名经验丰富的程序员,但我对在这样的网站上讨论的设计模式有些陌生 参数概要: (1) 有3个外部系统可以有效地存储数据 系统1-休息 System2-WSDL System3-COM互操作 (2) 数据实体在其中两个系统中都是有意义的,可以在两个系统之间移动 (3) 整个过程由同步管理器应用程序驱动 实施纲要: (4) 数据实体由位于单独命名空间中的接口定义 伊福 伊巴尔 伊巴斯 (5) 工作由位于系统专用命名空

我以前从来没有问过这么一般的问题,我不确定这听起来是否像是我在要求别人为我工作。我是一名经验丰富的程序员,但我对在这样的网站上讨论的设计模式有些陌生

参数概要:

(1) 有3个外部系统可以有效地存储数据

系统1-休息 System2-WSDL System3-COM互操作

(2) 数据实体在其中两个系统中都是有意义的,可以在两个系统之间移动

(3) 整个过程由同步管理器应用程序驱动

实施纲要:

(4) 数据实体由位于单独命名空间中的接口定义

伊福 伊巴尔 伊巴斯

(5) 工作由位于系统专用命名空间中的实用程序类完成

namespace MyCompany.Integrations.System1 {
 public static class Utility {
  public static List<IFoo> GetFoos(DateTime since) {...}
  public static void SaveBazes(List<IBaz> bases) {...}
 }
}

namespace MyCompany.Integrations.System2 {
 public static class Utility {
  public static void SaveFoos(List<IFoo> foos) {...}
  public static List<IBar> GetBars(DateTime since) {...}
 }
}

namespace MyCompany.Integrations.System3 {
 public static class Utility {
  public static void SaveFoos(List<IFoo> foos) {...}
  public static void SaveBars(DateTime since) {...}
 }
}
名称空间MyCompany.Integrations.System1{
公共静态类实用程序{
公共静态列表GetFoos(日期时间自){…}
公共静态void SaveBazes(列表基){…}
}
}
命名空间MyCompany.Integrations.System2{
公共静态类实用程序{
公共静态void SaveFoos(列出foos){…}
公共静态列表GetBars(日期时间自){…}
}
}
命名空间MyCompany.Integrations.System3{
公共静态类实用程序{
公共静态void SaveFoos(列出foos){…}
公共静态无效存储栏(日期时间自){…}
}
}
问题:这与现有的模式(如果有的话)有什么相似之处?我可以探索哪些领域来帮助我学习如何改进我的体系结构?我知道实用程序类不是OO。我还没有弄明白如何布局类以简单的方式完成它


另外:我想得更多,基于一个回答,我认为我不够具体我希望有经验的人告诉我如何应用一些OO模式并摆脱实用程序类

听起来你想要一个可以定位存储库的查找模式,我的理解正确吗?如果是这样的话,那么在谷歌搜索模式的研究应该有一些信息

我已快速搜索并找到以下位置:


听起来您想要一个能够定位存储库的查找器模式,我的理解正确吗?如果是这样的话,那么在谷歌搜索模式的研究应该有一些信息

我已快速搜索并找到以下位置:


10000英尺回答:

您可能会发现它们非常有用,因为它们为您提供了一组协同工作的模式,以及一组用于评估何时应用模式的原则。DDD资源:。干净的代码资源:

具体答案:

您已经在使用我在这里可能也会用到的模式(实用程序类)。静态成员可以生成代码,但在其他方面不是问题。如果存储库变得过于复杂,则将低级API通信中断为

由于实体在多个数据源上被拆分,请考虑显式地建模。例如:人员、人力资源人员、会计人员。使用外部系统及其业务所有者(如员工、资源)理解的名称。有关一些推理,请参见和。这些可能是完整的,也可能仅仅取决于它们的复杂程度


同步可能由协调存储库和实体的计算机执行。

10000英尺答案:

您可能会发现它们非常有用,因为它们为您提供了一组协同工作的模式,以及一组用于评估何时应用模式的原则。DDD资源:。干净的代码资源:

具体答案:

您已经在使用我在这里可能也会用到的模式(实用程序类)。静态成员可以生成代码,但在其他方面不是问题。如果存储库变得过于复杂,则将低级API通信中断为

由于实体在多个数据源上被拆分,请考虑显式地建模。例如:人员、人力资源人员、会计人员。使用外部系统及其业务所有者(如员工、资源)理解的名称。有关一些推理,请参见和。这些可能是完整的,也可能仅仅取决于它们的复杂程度


同步可能由一个协调存储库和实体的程序来执行。

有趣的是,这是我根本没有想到的方向。我希望有更多经验的人告诉我如何应用一些OO模式并摆脱实用程序类。如果你也使用google.net或c#/vb.net代码注入,你会在.net中找到一些注入的示例/框架。有趣的是,这是我根本没有想到的方向。我希望有更多经验的人告诉我如何应用一些OO模式并摆脱实用程序类。如果你也使用google.net或c#/vb.net代码注入,你会在.net中找到一些注入的示例/框架。