gpt4 book ai didi

c# - 可扩展统计系统的最佳方法

转载 作者:行者123 更新时间:2023-11-30 12:24:00 24 4
gpt4 key购买 nike

好的 - 我需要实现统计/数据点/数据源系统。

我基本上想定期将数据传递给“根”并让它处理和更新相关属性以在整个应用程序中访问 - 作为图形、标签、状态检查等的数据源。

我想知道过去是否有一些真实世界的用户处理过类似的例子。我用谷歌搜索了这个 hell ,关于我应该做什么,我一直得到混合的结果,我讨厌只是编程和“让碎片落到位”。我需要一个方向。

为清楚起见编辑:数据源将是:

  • 本地文件(最有可能是 xml),
  • 本地sql,
  • 远程获取json数据,
  • 远程获取sql。

子系统的类型(有限列表,仅用于说明目的):

  • 连接状态—— bool 型和文本型,
  • 图形/Gridview 数据源,
  • 处理/预测方法(例如概率分布等),
  • 基于客户/部门的一般统计概况,
  • 基于日期/时间/跨度的一般统计资料,
  • 更多...

正如我所说,如果需要(很可能会),可以协同使用其中许多来源来更新数据段。一条信息可以跨多个系统使用,但有时抓取对于一个点来说非常具体。

我希望这能让它更清楚一点……也许吧。如果可能的话,我想在一个区域处理所有的数据处理。随着流量的增加,它会更容易使用。

我在集思广益的过程中写下了一些想法。

  • 观察者模式

    这个模式看起来不错,但是它确实有一些缺点,因为所有的订阅者都会被通知而不是选择性的。这将迫使我要么检查数据然后处理,要么为每种类型的数据创建多个可观察对象并将其级联到 subs。我绝对喜欢它的可扩展性,还允许我在需要时分到多种类型的数据源。另一方面,要获得任何结果似乎也需要做很多工作。照原样向前支付。

  • 策略

    这种模式似乎也很相关,但方式不同。单独存储原始数据的处理,并且只有一个包含所有统计信息的父类(可以这么说)。我喜欢这样,因为所有信息都集中存储,“节点”处理并返回。允许轻松访问和存储,但是属性的数量(除非我将其拆分,否则可能)将是巨大的。

  • 自定义事件。

    现在 - 我想这可以被视为对第一个的重新发明。但我确实喜欢它提供的控制。

  • 观察者与策略的结合。

    这可能很奇怪,但听我说完。所以你让你的可观察对象将数据传递给它,它向下级联到适当的子程序,这些子程序将出于不同的原因处理该信息,然后使用来自每个子程序的策略并相应地处理信息并将其传递回子程序以进行处理存储/访问。

    这方面的一个例子是定期从某种来源提取数据;此信息可用于更新系统的多个区域(观察者),但每个区域都需要以不同的方式处理(策略)。

这个逻辑合理吗,还是我应该换个角度看待它。我确实需要它具有可扩展性和可扩展性,因为系统可能会处理“大”量。

想法?尽量具体但切题。

最佳答案

我最终结合了观察者和策略,并加入了一些海关事件。有趣的是它是如何工作的。它实际上工作得很好 - 轻量级,可扩展和可扩展的测试“大”(5-7gigs)输入。每次都有想要的结果。尽管没有提供帮助,但我想我会分享观察者/策略组合实际上运作良好的事实。

关于c# - 可扩展统计系统的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085805/

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