TEL:400-8793-956
当前位置:程序、服务器

为什么要创建新方法而不是声明构造函数?

提问者: 近期获赞: 浏览人数: 发布时间:2021-04-06 13:22:51

 问:由于Model层负责检索和显示数据,因此,对于此类的每个对象,如果我们使用一个接收JSONObject作为参数并填充该对象的类构造函数,而不是在Activity类上的方法?

这就是“模型,视图,控制器”之类的抽象在我的大脑中真正融化的地方。
 
一方面,活动处理视图,但实际上它是一个控制器。并预测在一个真正的型号,所以将它最好,如果它做了一个示范的工作,只是坚持表示数据结构,没有操纵本身,对不对?
 
再说一次,如果您要准确地对Forecast.io api调用中的数据进行建模,就像我们在这种情况下所做的那样,您会认为,是的,实际上,它应该接受自身的json表示并知道如何相应地建立自己。
 
实际上,这意味着您的控制器不再需要关心自己的预测模型API。它只是调用天气api,将数据传递到可以使用的模型,并依靠其中的某些行为,并且为减少破损提供了更好的条件。
 
另外,我想这意味着将来可以增强Forecast模型,以接受具有新构造函数或源参数的其他Forecast json / xml对象,并且仍能按照我们在Stormy活动本身中的预期方式进行操作。
 
我肯定喜欢MainActivity代码的想法,其中包括如下一行:
 
mForecast  = 新的 预测(jsonData );
或者...
 
mForecast  =  new  Forecast (jsonData , “ bobsWeatherShack” );
 
 
答:构造函数和方法之间的重要区别在于,构造函数创建和初始化尚不存在的对象,而方法则对已经存在的对象执行操作。
 
构造函数不能直接调用。当new关键字创建对象时,将隐式调用它们。可以直接在已经用new创建的对象上调用方法。
 
构造函数和方法的定义在代码中看起来相似。它们可以采用参数,可以具有修饰符(例如public),并且在括号中具有方法主体。
 
构造函数的名称必须与类名称相同。他们无法返回任何内容,甚至不能返回任何值(对象本身是隐式返回)。
 
尽管可能是无效的,但必须声明方法以返回某些内容。
 
给定所有这些条件,方法在此上下文中更加灵活,具有描述性并且可重用。使用方法而不是构造函数在将来提供了更大的扩展潜力。
上一篇: 字符串插值不起作用-无效的转义符
下一篇: 我看不到问题,仅是IDE板