设计模式资料积累

设计模式资料积累_第1张图片
20170512182435_f2ZYB.jpeg

这不是本篇的最终样式,这是我对于设计模式系列博客笔记的开端,也许有幸能有人从头看到尾,欣赏一篇美文,一个大知识点有少到多,知至最终积累完毕的过程,一步步的渐变,这就是写大块知识点,系列文章我认为最好的方式。

不积跬步,无以至千里,不积小流,无以成江海!很多成块知识点不好学,那么我们就一步一步的啃,学通一点写一点,很快这个系列文章就能简单成型了,然后我们再去实践,积累经验和自己的看法,回来修改自己的文章。平时看到相关好文,也有个地方记录,不至于想看是找不到不是。实践证明,微信的收藏,简述的喜欢都是不靠谱的,不经历筛选,整理的记录都是耍流氓,都是骗自己。


设计模式资料积累_第2张图片
20150523225951_famQn.jpeg

美人如玉

身轻体柔

代码之路如美人

唯有套路得人心


设计模式资料暂时积累

是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。说白了,就是一些开发的套路,用于解决某一些特定场景的思想,然后套路大家都懂的.......

  • 世道无情_3篇文章

动态代理

动态代理之前我写完总是报错,这里贴一下实现

public class BasePresenter {
private V mView;
private M mModel;

/**
 * 绑定View
 *
 * @param view
 */
public void attach(final V view) {
    //动态代理
    mView = (V) Proxy.newProxyInstance(view.getClass().getClassLoader(), view.getClass().getInterfaces(), new InvocationHandler() {
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            //在View层显示数据之前用户可能退出了View层的页面,会在Activity的onDestroy()方法中会把mView置为null
            //由于View层都是接口,这里采用了动态代理,如果在View层显示数据之前用户可能退出了View层的页面,返回null的话,onSuccess()方法不会执行
            if (mView == null) {
                return null;
            }
            //每次调用View层接口的方法,都会执行这里
            return method.invoke(view, args);
        }
    });
    //动态创建Model?怎么创建创建???用反射创建
    Type[] params = ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments();
    try {
        //最好是判断下类型
        mModel = (M) ((Class) params[1]).newInstance();
    } catch (InstantiationException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}

用于给外面调用者使用的叫:上层接口。典型的比如 handle ,我们有 handle 就可以实现线程切换,简化使用,提升使用体验。

你可能感兴趣的:(设计模式资料积累)