好书推荐-《Head First设计模式》

图书信息

  作者:Eric Freeman
  中文版出版社:中国电力出版社

推荐理由

  这是我看过的最好的计算机类图书(别嫌弃我读书少,–>__–>),它有如下优点:
  图文并茂、层层深入、生动有趣、从问题引出解决方案代入感强、每章的总结别出心裁、学习者与设计大师的对话深入浅出、读每一章都像在读一个故事……
  本书一直在强调一件事情:针对接口编程,而不是针对实现编程。“针对接口编程”真正意思是“针对超类型编程”,关键就在多态,利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被绑死在超类型的行为上。分开可能需要变化的部分,把它们独立出来,不要和不需要变化的代码混在一起。

本书内容

1 策略模式
2 观察者模式
3 装饰者模式
4 工厂模式
5 单件模式
6 命令模式
7 适配者与外观模式
8 模板方法模式
9 迭代器与组合模式
10 状态模式
11 代理模式
12 复合模式
13真实世界中的模式
14剩下的模式

对自动化测试的一点启发

  在读命令模式这一章的时候突然联想到一个困扰我多时的问题:在Android应用开发中如何做好功能测试?我们知道移动应用中涉及到大量用户交互场景,很难做到自动化测试,完全自动化不太现实,我们只做逻辑测试会简单一点吧。
  抛开界面,我们的功能其实就是一串方法调用,只是按照我们的开发习惯这些方法会散落在每个界面,我们为什么不把他们从界面拿出来写入一个逻辑处理层呢?这样只需要测试逻辑处理层就可以了。请看我在知乎的提问:作为应用开发者你是如何做好自测的?

Activit01{
    btn01{  
        process01
    }
    btn02{
        process02;
        goto Activity02
    }
}
Activit02{
    btn03{  
        process03
    }
    btn04{
        process04;
    }
}

上面的代码要想测试只能通过页面操作来触发逻辑了。
下面添加逻辑层:

Presenter{
    Callback cb
    Presenter(Callback cb)
    process01
    process02
    process03
    process04
}
Activit01{
    Callback cb
    Presenter p = new Presenter(cb)
    btn01{  
        p.process01
    }
    btn02{
        p.process02;
        goto Activity02
    }
}
Activit02{
    Callback cb
    Presenter p = new Presenter(cb)
    btn03{  
        p.process03
    }
    btn04{
        p.process04;
    }
}

Test{
    Callback cb
    Presenter p = new Presenter(cb)
    test01{
        p.process01
    }
    test02{
        p.process02
    }
    test03{
        p.process03
    }
    test04{
        p.process04
    }
}

  这样在Test中你可以随意调用逻辑层代码。
  这是我理解的很原始的MVP模式的实现,可能通过回调不是最简洁的方式,但是最易懂的。

计划

  目前读到适配器与外观模式这一章,后面计划往后读的同时总结前面的章节,真正吸收为自己的东西,以后在开发过程中去运用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值