为活动添加功能(继承,装饰,策略......)

时间:2015-05-30 18:07:07

标签: android oop inheritance android-fragments strategy-pattern

我无法决定下一次应该采用什么方法。

我的应用程序中的一项活动需要具有不同的功能,这里是多重继承的泄漏发挥作用。

我需要得到什么?

我的活动必须有几个部分。

  1. 导航抽屉。我正在使用MaterialDrawer库。它需要在单击回调上实现活动(或者使用组合代替),但它也使用activity作为构造函数参数,所以我认为将它放在从Activity继承的单独类或Android Framework提供的任何基类中会更好。感谢库开发人员,它不需要在create方法上完成任何工作(例如setContentLayout)

  2. 我的活动(其中一个)只有Toolbar和FrameLayout来保存片段。或者最好将工具栏和单个片段分开? 这反过来要求在onCreate中完成一些事情:setContentLayout具有基本布局,将片段添加到容器集活动操作栏.....

  3. 将来我可能会使用另外一些需要在活动生命周期方法中添加内容的库。

  4. 为了遵循单一责任原则,所有这些要点必须是从某些基本活动继承的单独类别 例如,我们会有类似的东西。

    public class SingleFragmentActivity<T extends Fragment> extends AppCompatActivity {
    
    }
    public class SingleFragmentToolbarActivity<T extends Fragment> extends AppCompatActivity {
    
    }
    public class NavigationDrawerActivity extends AppCompatActivity  {
    
    }
    ....
    

    正如您所看到的那样,每个功能都被放入了单独的课程中,但如果我需要SingleFramgentActivityNavigationDrawer一起怎么办? 在这种情况下,我必须从另一个继承其中一个类,例如

    public class NavigationDrawer extends SingleFragmentActivity {
    
    }
    

    如果这样做,我无法与SingleFragmentActivity分开使用导航抽屉。

    在这种情况下,最好的做法是什么,如何构建类层次结构以使其灵活并使用Open-Close原则,在应用程序中进行更改而不会有任何痛苦。 (使用策略,装饰.......)

    我将非常感谢大家的帮助。

0 个答案:

没有答案