【问题标题】:Network programming inside the View Controller... bad practice?视图控制器内的网络编程......不好的做法?
【发布时间】:2015-12-02 19:06:29
【问题描述】:

我知道,这是一个相当广泛的问题。

在模型之外的视图控制器中保持网络是不好的做法吗?或者这在模型中会更受欢迎吗?例如。目前有一个 ViewController,我通过它获取 JSON 数据。一个 URL 请求,对其进行解析,并将其呈现给视图。

我将 JSON 结果的数据用作数据模型对象中的属性。不好的做法?

我现在专门使用 iOS,但对我来说一切都很好,我只是想了解一下。

【问题讨论】:

    标签: design-patterns model-view-controller theory system-design


    【解决方案1】:

    假设你的模型是数据对象,我认为网络代码应该与 ViewController 和 Model 分开,如果可能的话,即:将它包含在一个单独的类 NetworkHelper 中,并让 ViewController 操作 NetworkHelper 来填充模型(数据对象)。

    它允许单独测试网络代码。您还可以通过替换 NetworkHelper 轻松替换数据源(例如:使用硬编码数据而不是下载)。

    可能是这样的依赖关系:

    NetworkHelper--UIViewController
                \   /   |
                Model  UIView
    

    【讨论】:

    • 谢谢,真的很有趣。我没有想到这一点。我想如果它对项目有价值,打破模式是可以的。
    猜你喜欢
    • 2012-02-06
    • 2010-11-24
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2012-03-02
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多