Week002 总结
在第三周的学习中,主要学习了简单工厂模式、单例模式、适配器模式、模板方法模式、策略模式、组合模式以及装饰器模式的具体应用场景。
之前也看过设计模式相关的内容,但最开始的感觉就是,这些设计模式很多长得都差不多一样。后来的体会是,这些玩意大部分是对于面向对象语言里多态的灵活运用,还有些接口隔离以及运用了类创建过程中的一些特性。
上了课以后,似乎有了更深一层次的认识,其实这些设计模式并不是孤立存在的,他们的存在都是为了解决特定场景、特定上下文系统代码逐渐腐化的场景下,进行更加灵活变动的一些解决方案。虽然有些模式用到的理论相似,导致他们看起来非常相似,但解决的是不一样的问题。
单例模式:
可以用以减少对应对象频繁创建回收,提高系统性能。同时在项目中为了对对象进行统一的控制,也可以使用这个模式。该模式下的对象最好设置为无状态的。
适配器模式:
若遇到需要使用某个API,但该API与我们现有系统需要的接口并不适配的情况下,可以使用该模式。或在过往开发中写了一些比较难以与当前架构相适配的API,但又不能废弃的时候,可以用该模式。
模板方法模式:
感觉这个模式在框架开发中用的最多了,写框架的人定义好方法的执行顺序,而使用框架的人必须按规定实现框架中定义好的方法。否则出错或者不输出预期结果。感觉这个方法是很核心的一个方法。
策略模式:
之前有人调侃说:遇事不决,用策略。感觉策略模式用的也非常多,毕竟感觉多态用的6的就是它了。为我们的程序提供了更大的灵活性,让我们少写那些紧密耦合的代码,后期更好维护的同时,让我们看起来更专业。
组合模式:
记得老师好像说这个方法比迭代更加快速(不太确定),但始终还是觉得这玩意好像和迭代差不多....感觉还没学透,难道是因为组合模式相较于迭代,进行过类似于剪枝的事情?没细想太多...因为时间好像超了...
评论