View Controller内的网络编程......不好的做法?

时间:2015-12-02 19:06:30

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

相当广泛的问题,我知道。

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

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

我现在专门与iOS合作,但对我来说一切都没问题,我只是想了解。

1 个答案:

答案 0 :(得分:3)

假设你的模型意味着数据对象,我认为网络代码应该与ViewController和Model分开,如果可能的话,即:将它封装在一个单独的类NetworkHelper中,让ViewController运行NetworkHelper来填充模型(数据对象)。

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

依赖关系可能如下所示:

df ['mask'] = ((df['Class'] == 'Meadow') & (df['SP_Percent'] >=20))
df2 = df[(df['mask']==True)][['POLY_KEY_I']]
df2['mask2']=True
df = pd.merge(df,df2,how='left')
df.ix[((df['mask2']==True) & (df['Class']=='MTGP')),'Class'] = 'WMTGP'