在为片段实现“工厂”模式时,是否总是必须指定参数,即使它们未被使用?

时间:2017-10-10 15:51:44

标签: android android-fragments

当需要创建具有特定参数的片段时,我理解需要使用传递在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();
}

实际上,在那些我 保证永远不需要参数 的情况下,根本不接受使用工厂模式的做法是可接受的,而只是新的根据需要使用片段,还是应该添加它以保持一致性?

作为后续行动,如果需要工厂方法,是否有一致或推荐的名称?我见过以下所有内容:

  • 新()
  • 的newInstance()
  • newFragment()
  • 创建()
  • createFragment()
  • 的createInstance()
  • createItem()

1 个答案:

答案 0 :(得分:1)

  

这是允许的吗?

public static MyFragment newInstance() {
    return new MyFragment();
}

绝对。无需创建和分配空参数Bundle

  

在我保证永远不需要参数的情况下,根本不使用工厂模式,而只是根据需要新建片段是不可接受的做法

绝对。您提到的模式只是为您(开发人员)提供便利,这也有助于确保您始终指定必要的信息。当你不需要任何参数时,只需自己调用默认构造函数即可。

你可能会争辩说,总是使用newInstance()方法可能会更好,这样你的团队就不会对是否使用静态工厂方法或构造函数感到困惑,但这是你和/或你的团队应该做出的;没有规则反对使用构造函数。

  

是否有一致或推荐的名称?

我个人看到newInstance()比其他人看得多,但我不相信有任何明确的标准。