• 本篇记录自己对设计模式的理解。
    在平时项目开发中,我们很少使用设计模式,设计模式的目的是提供可拓展性和可维护性,但是我们开发的项目本身,大部分都是固定写死的,逻辑单一,我们开发的模块也并不在其他的位置或项目中复用,目的很明确就是做当前的业务。所以,平时开发中用到设计模式的地方很少,但是框架就不同的了,框架必须适应不同的项目,具备高弹性和拓展性。他们要能适应各种不同的环境,所以,设计模式在框架设计中处处可见。比如,世界上成千上万的项目都在使用spring,shiro,hiberate,这些框架就需要满足不同的需求,使用不同的配置插件,定制化,他们不仅要适应你,还要适应它,各种策略模式,***模式,责任链模式,状态模式。比如shiro中的一个token,有的项目要使用简单文本密码,有些项目使用数字证书,这里就必须使用策略模式,spring中的事务处理,因为它是框架,他根本不知道自己要放在那段service对象上,就要使用动态***模式,动态的进行运行时实施***,可以这么说,设计模式为拓展而生,你绝不会为了你们的项目需要去改spring的源码来适应你的项目需求,框架是如何适应成千上万的项目的。但是,我们的业务逻辑代码,平时开发项目的时候,功能是死的,是专为这个场景而生的,不会在另外的场景中出现,
    所以,这种代码开发,业务的开发,是不需要设计模式的。对于我们平时开发的项目,如果需求有变化,我们一般的做法,是直接修改源代码了,这样的其实带来了一定的修改成本,但是,为了一个项目中可能不明确的未来变化,而精心设计扩展性很高的架构,成本也是显而易见的,所以,这是一个取舍。