获得徽章 4
- 今天去面试遇到一道题,上级交给你一个任务,一个业务十分复杂的程序,要求一个月完成,你会如何平衡这个程序的架构设计和时间。我想了好多也说了好多,主要是前期架构的定义和沟通方面。最后面试官说难道不应该是先在规定时间内把这些复杂的功能做好,后面再慢慢设计好架构吗
什么时候架构的设计那么随意简单了???
赞过73 - 刚刚在整理项目中MVP里的View层,发现一个问题。我们喜欢封装一个BaseActivity实现一些常用的View操作(比如toast, loadingView等),各个模块中只要继承BaseActivity就好了。可是,如果我在某个模块中想用到别的Activity,比如DialogActivity,PreferenceActivity,这样就不能直接继承BaseActivity了!而且,我还要为这新增的Activity增加基本的View逻辑代码。
于是我想到了两种办法:
1、用代理模式,将base的View操作代码封装起来,这样新建的Activity的基本View操作就不是依赖于BaseActivity而是代理类了,比如AppCompatActivity中的delegate。可是每生成一个Activity还是需要一条一条的写入代理类的调用。总感觉不够优雅
2、每个Activity中用Fragment来实现View层代码,这样只要实现一个BaseFragment,外层的Activity怎么更换都无所谓。可是当前代码主要使用了Activity充当View,这时候用Fragment做替换,工作量有点大。另外,如果需要改为DialogFragment, PreferenceFragment的话,又是一样的问题。虽然Activity+Fragment比较好,但是不太适合现状。
所以,这道题有几种解法?不知道有没有描述清楚大家都是怎么使用BaseActivity /BaseFragment的?
展开评论点赞 - 刚刚在整理项目中MVP里的View层,发现一个问题。我们喜欢封装一个BaseActivity实现一些常用的View操作(比如toast, loadingView等),各个模块中只要继承BaseActivity就好了。可是,如果我在某个模块中想用到别的Activity,比如DialogActivity,PreferenceActivity,这样就不能直接继承BaseActivity了!而且,我还要为这新增的Activity增加基本的View逻辑代码。
于是我想到了两种办法:
1、用代理模式,将base的View操作代码封装起来,这样新建的Activity的基本View操作就不是依赖于BaseActivity而是代理类了,比如AppCompatActivity中的delegate。可是每生成一个Activity还是需要一条一条的写入代理类的调用。总感觉不够优雅
2、每个Activity中用Fragment来实现View层代码,这样只要实现一个BaseFragment,外层的Activity怎么更换都无所谓。可是当前代码主要使用了Activity充当View,这时候用Fragment做替换,工作量有点大。另外,如果需要改为DialogFragment, PreferenceFragment的话,又是一样的问题。虽然Activity+Fragment比较好,但是不太适合现状。
所以,这道题有几种解法?不知道有没有描述清楚大家都是怎么使用BaseActivity /BaseFragment的?
展开评论点赞