是否需要给每个 Activity 类提供 startActivity 方法

March 22, 2016

是否需要给每个 Activity 类提供 startActivity 方法

在项目中,经常能碰见有人新建了一个 Activity 类,然后为了方便别人调用,在这个类里增加了一个静态的 startActivity 之类的方法,参数列表里放了启动这个 Activity 需要的一些参数。

这样做是有些好处的,这样能约束调用者,也方便调用者知道有哪些参数是需要传递的。

但是在实际的项目中,往往会往几个不好的方向发展。一种可能是,这个参数列表越加越多,但并不是每个调用都需要那么多的。另外一种是,有的调用者修改了这个类,同时为了自己方便,并且不打算修改别的调用者的代码,自己又另写了一个 start 方法,自己调用,这样的方法也慢慢的变得越来越多,导致后来的人都不知道要用哪个了。

其实出现这种情况的原因是,这个被调用的 Activity 的职责没有分析清楚,它可能担负的职责太多了,这可能不是刚开始设计的时候能考虑到的,因为项目总是在不断的变更中的。而这些已经实现的 Activity 在一个小项目开始的时候并没有被很好的考虑进去,从产品到开发者,都认为这是已有的界面,最多是稍加修改就可以直接使用了。这样的认知在项目中很常见。我的观点是,如果你是这个产品的长期的负责人或者维护者,在知道这种情况可能存在的情况下,在评估工作量的时候,可以适当的把这些成本考虑进去,这些界面可能是已有的,但是需要重新设计一下,而不仅仅是稍加修改,每次都稍加修改,最后只能导致没法用了。

回到咱们一开始讨论的这个方法,或者这样的方法应不应该存在。我的个人观点是可以存在,确实起到了一定的作用,方便调用,约束调用。但是尽量保证这个方法只有一个,也保证参数尽量简洁。

--- EOF ---

添加新评论