当需要创建具有特定参数的片段时,我理解需要使用传递在bundle中的那些参数的工厂模式,而不是创建非默认构造函数,考虑它们可以被拆除并重新创建正如系统所指示的那样。我想知道的是,如果你没有传递任何参数,你还需要为它们创建一个新的包,还是你可以跳过它?
即。而不是......
public static MyFragment newInstance() {
MyFragment fragment = new MyFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
这是允许的吗?
public static MyFragment newInstance() {
return new MyFragment();
}
实际上,在那些我 保证永远不需要参数 的情况下,根本不接受使用工厂模式的做法是可接受的,而只是新的根据需要使用片段,还是应该添加它以保持一致性?
作为后续行动,如果需要工厂方法,是否有一致或推荐的名称?我见过以下所有内容:
答案 0 :(得分:1)
这是允许的吗?
public static MyFragment newInstance() { return new MyFragment(); }
绝对。无需创建和分配空参数Bundle
。
在我保证永远不需要参数的情况下,根本不使用工厂模式,而只是根据需要新建片段是不可接受的做法
绝对。您提到的模式只是为您(开发人员)提供便利,这也有助于确保您始终指定必要的信息。当你不需要任何参数时,只需自己调用默认构造函数即可。
你可能会争辩说,总是使用newInstance()
方法可能会更好,这样你的团队就不会对是否使用静态工厂方法或构造函数感到困惑,但这是你和/或你的团队应该做出的;没有规则反对使用构造函数。
是否有一致或推荐的名称?
我个人看到newInstance()
比其他人看得多,但我不相信有任何明确的标准。