设计模式是指在软件开发中,针对常见的问题和情况,通过归纳总结经验和最佳实践,形成的一系列被广泛认可、可复用的解决方案。设计模式不是具体的代码实现,而是描述了一种在特定情境下可重复使用的解决方案。该段定义很标准,网络上或者教科书上都有。单看上述定义感觉这个设计模式是个好东西,要学习它使用它。
接下来就是讲传说中的23种设计模式了,当然后面有24种,25种之说的,听说有的把MVC分层架构也纳入了一种设计模式,确实是一种思想,个人觉得没问题。20几种设计模式要分类,分的类也是固定的那几种:创建型,结构型和行为型。简单列举几个大名鼎鼎的模式名称:工厂模式、单例模式、观察者模式、适配器模式、装饰器模式、代理模式。其实其他的也都是大名鼎鼎的,要不然不能成为经典呢。
众所周知,常用的框架内部就是用了很多的设计模式,比如Spring框架使用到的工厂,单例,策略,代理等等,其他的框架应该也有,没了解过,如果按照设计模式的伟大作用来评估的话不用设计模式的框架会在以下几方面有所欠缺吧:代码质量和可维护性,软件开发效率,代码重用和可扩展性,可读性和可理解性。
但是实际做业务开发的时候会使用哪些设计模式呢,根据个人经验,印象中用到的设计模式是单例和策略。单例的场景是连接池,让连接池对象只返回一个,共享的。策略的场景是因为有很多的条件判断,比如在做协议解析转发的时候,刚开始是使用冗长的条件判断去做的,后来参照策略模式改写了,可读性和可理解性瞬间提高了,当然代码质量和可维护性,代码重用和可扩展性也得到了改善,软件开发效率么,还行,比写判断感觉开发效率高,哈哈。其他的策略实际工作中使用的印象不深。可能沾点边的也有,还是需要好好向前辈大神多学习,不断提升自己的编程思想。