我希望能够动态地构建有几个的 ,我们有能力的活动(例如防止滚动,监测互联网连接,防止取向变化等)。
我们不希望有创建一个抽象BaseActivity
包含所有功能的所有可能的属性和抽象方法。 我们将在子类有很多空的函数实现的BaseActivity
谁只需要实际执行数的那些功能。 更糟糕的是,如果我们想别的能力(另一套性能和功能添加到BaseActivity
),我们将不得不修改的每一个孩子BaseActivity
执行新的抽象函数(最有可能会是空的)。
的另一种方法BaseActivity
继承是创建实现只有少数的,我们有能力的子类。 但是,这需要我们创建一个子类的能力每个组合,这甚至很少的功能太多了。 此外,这将导致大量重复的代码将实现同样的功能2+子类。
所以,我想实现Decorator模式,但我不认为我们永远实际上实例化一个新的活动。 我们总是创造一个Intent
,并指定SomeActivity.class
在其构造,则称startActivity(new Intent(getApplicationContext(), SomeActivity.class));
有没有办法拦截活动的实际实例,执行它的装饰模式操作,然后让OS /应用程序把它放在堆栈的顶部?
如果没有,还有什么其他的办法是可行的?