第 3 周学习总结
设计模式:可重复使用的解决方案
学习的目标:设计模式解决了什么问题,如何解决问题,优势体现在哪里?有没有更好的方案?
Junit 采用的是模板设计模式。模板中利用反射来,获取setup,test的注解来实现。
1,抽象方法;子类必须实现。
2,具体方法;子类不需要覆盖,但也可以覆盖。
3,钩子方法。父类空实现,子类可以选择行覆盖之,一遍在特定的时间做些事情。
java Servlet中的模板方法。
策略模式
系统需要在多种算法中选择一种
重构系统时,将条件语句转化成为对于策略的多态性调用
策略模式的优点
1,将使用策略的人与策略的具体实现分离
2,策略对象可以只用组合
策略模式可能存在的问题:
策略模式仅仅封装了“算法的具体实现”,方便添加和替换算法,但他并不关心合适使用算法,这个必须有客户端来决定。
junit可以利用泛型,可以用抽象的方式来测试不同的数据类型参数测试。
Junit suit方法中可以通过调用addTestSuite方式将多个testjunit加入到这次测试中。采用的是组合设计模式。便于将多个小的testcase,组合成一个更复杂的测试包。
组合模式更多用在树这样的结构上。
Junit 中性能测试这块使用的装饰器设计模式。子类装饰父类的方法,最后调用父类的方法。
装饰器,需要实现被装饰对象的接口。
spring中的单例是使用map来实现,只要不重复实现对象就行了。
评论