怎么查出这个网站是谁做的,建站软件,东营网站建设优选案例,免费企业网站怎么做这篇文章里说一下对设计模式的个人的理解。本篇文章更类似于随笔而非技术文档。
设计模式最早是在上个世纪就被人提出来了#xff0c;如今被奉为圣经#xff0c;也就是GOF等人写的《设计模式》#xff0c;其中的设计模式#xff0c;是指导开发者如何进行开发出高内聚、低耦…这篇文章里说一下对设计模式的个人的理解。本篇文章更类似于随笔而非技术文档。
设计模式最早是在上个世纪就被人提出来了如今被奉为圣经也就是GOF等人写的《设计模式》其中的设计模式是指导开发者如何进行开发出高内聚、低耦合、易扩展的好代码的。我在小白时时常疑惑设计模式在开发中如何进行落地呢
今天把以前的疑问落在文章中回答过去的自己吧。
首先要知道的是设计模式提出的时代背景出在一个硅谷的黄金时代个人开发者靠自己就可以写出商用软件的时代。此时如何只靠自己写出高内聚、低耦合的好代码是那时开发者的问题。GOF等人设计模式的总结使得好的开发经验得到了总结依靠这些模式使得开发者可以更轻松的进行设计和开发。
不过大人时代变了。如今已经不是硅谷黄金时代仅靠个人就可以实现一个火遍全球的商用软件那样英雄主义的事不复存在大多数开发者只是一个开发工作中的小小的分子。我们不得不依靠大量成熟的商用中间件和框架及更易使用的高级语言这大大加速了我们开发的速度减轻了我们设计和开发的难度同时意味着我们对于设计模式的依赖变得更小了。即使不怎么懂设计模式的小白依靠spring boot也能快速搭建起一个web项目。
但是这并不意味着设计模式不存在或者无用了设计模式实际上大量存在于框架和中间件中只是作为java web开发一般很少会直接用到设计模式举例如下
线程池、连接池用到的是享元Flyweight模式。
java和cglib的动态代理用的是代理Proxy模式。
spring框架中的过滤器在使用时会从spring中传个参数叫filterChain这个用的是责任链Chain of Responsibility模式。
实现了Collection接口的集合类中都会提供一个叫做Iterator的迭代器用于遍历集合用到的是迭代器Interator模式。
如今用于项目解耦的MQ用到的是中介者Dediator模式。
zookeeper里的watcher机制一个zk节点可以被多个watch关注在变动时触发回调用的是观察者Observer模式。
lombok框架的builder注解用的是建造者Builder模式。
spring框架容器在注入对象时类型为single对对象进行复用时用的是单例Singleton模式。
还有我们在进行RPC服务提供时常常把一个api接口层的包提供出去用的是外观Facade模式。
我们在开发时经常会给每个模块的实现类抽象出一个接口来规定impl类的行为这个用的是模板方法Template Method模式。
除了最后两个web开发在开发中其实很少直接应用设计模式。至此以前我的疑问已经回答了。我们是间接的应用了设计模式的多直接应用设计模式的少。