代理模式

    之前的使用如下。Activity和Fragment同时implement AppTitle

    1. public abstract class BaseActivity extends Activity implements Handler.Callback, AppTitle {
    1. public class BaseFragment extends Fragment implements AppTitle

    修改后的

    1. public class BaseFragment extends Fragment {
    2. private AppTitle appTitle;
    3. @Override
    4. public void onViewCreated(View view, Bundle savedInstanceState) {
    5. super.onViewCreated(view, savedInstanceState);
    6. Log.d("fragment:onCreateView", getView());
    7. //
    8. appTitle = new TitleMgr(getActivity(), getView());
    9. appTitle.initTitle();
    10. }
    11. public AppTitle getAppTitle() {
    12. return appTitle;
    13. }
    14. public void setAppTitle(AppTitle appTitle) {
    15. this.appTitle = appTitle;
    16. }

    采用策略模式

    如果某个BaseFragment的样式不太一样,可以重新AppTitle模块。同时又不影响整体app的使用。

    默认的实现类是TitleMgr