一个程序员的必经之路就是学习算法、数据结构、设计模式,设计模式的学习我经常有看到好像大家都人手一本《XXX设计模式》,但是能真正用起来的人我发现比较少,那么我就不经要发问,如何有才能灵活的学以致用,既不能因为用设计模式而用设计模式,而是能针对自己不同的业务来定制自己的设计模式呢?
首先所有的设计模式大部分都遵循《六大设计原则》,而我因为知道它的重要性,就背了下来,这里我也建议大家把它也背下来,编写代码的时候有这些概念,能够保证你代码的扩展性和维护性,从而提高其稳定性。
这里我不停的再思考,以前我也经历过学完设计模式,发现也是用不起来,但是通过很多实际开发和一些开源项目上的设计模式应用,从而得到一些灵感,自己也开始设计一些代码结构,很多同学都想通往达到架构师的水平,那么这些东西就更加值得你去挖掘了。
这里我练习过的很多案例,大家也可以参考和用来练手,因为工作上也是Android移动端的,找的练习项目基本上也都是Android相关的一些开源项目,
这些项目ImageLoader一句代码给ImageView加载上图片、xUtils中的数据库模块、ButterKnife运行时期注解框架、Okhttp以及Okhttp相关的一些封装库的学习,如何能够达到请求库的随意切换(比如今天用Okhttp明天用Volley)、ARouter页面启动路由等,包括公司项目中的一些代码设计(不方便透漏),但是大致可以说一下,打个比方,就是实际的开发业务代码的时候,要确保平台的无关性,也就是说,假如有一天,我这个代码要放到Java后台去使用而不是在Android当中运行,要做到这样,你就不能带入Android平台的任何代码,那就意味着所有的业务代码要与平台代码进行隔离。这里给出一个比较重要的概念就是重复带上《六大设计原则》的思想去练习,琢磨你看不懂的代码设计与就算你看的懂又不知道为什么这么设计代码,这个是我认为通往设计模式深入理解与应用的必经之路。
以上是简单又通俗的经验,希望能带你理解一些小技巧,让你写出来的代码也能让自己欣赏个半天。
后续会提供一些案例的练习细节,以及更多的设计模式上的见解。
《六大设计原则》Google一下很多;
https://github.com/iluwatar/java-design-patterns 设计模式比较推荐学习的地址;