其实不用设计模式并不是不能够,可是用好设计模式能帮助咱们更好地解决实际问题。设计模式
设计模式每天都在用,但本身却无感知。网络
本系列文章,初衷是为了记录平常常常使用的设计模式,也给学习设计模式的同窗们提供参考和查阅。app
文章内容有本身的理解,也有参考网络,若有侵犯,请告知删除。框架
设计模式最重要的是解耦。学习
学习设计模式是如何总结经验的,把经验为本身所用。spa
学设计模式也是锻炼将业务需求转换技术实现的一种很是有效的方式。设计
咱们在学习设计模式以前,建议你们,必定要掌握好设计模式的几大原则,《设计模式之禅》一书中开篇就是讲的是设计原则;代理
因此在本篇文章中,在这里先对设计原则作一个回顾和总结。server
设计原则 | 解释 |
---|---|
开闭原则 | 对扩展开放,对修改关闭。 |
依赖倒置原则 | 经过抽象使各个类或者模块不相互影响,实现松耦合。 |
单一职责原则 | 一个类、接口、方法只作一件事。 |
接口隔离原则 | 尽可能保证接口的纯洁性,客户端不该该依赖不须要的接口。 |
迪米特法则 | 又叫最少知道原则,一个类对其所依赖的类知道得越少越好。 |
里氏替换原则 | 子类能够扩展父类的功能但不能改变父类原有的功能。 |
合成复用原则 | 尽可能使用对象组合、聚合,而不使用继承关系达到代码复用的目的。 |
Spring 就是一个把设计模式用得淋漓尽致的经典框架,其实从类的命名就能看出来,我来一一列举:对象
设计模式名称 | 举例 |
---|---|
工厂模式 |
BeanFactory |
装饰器模式 |
BeanWrapper |
代理模式 |
AopProxy |
委派模式 |
DispatcherServlet |
策略模式 |
HandlerMapping |
适配器模式 |
HandlerAdapter |
模板模式 |
JdbcTemplate |
观察者模式 |
ContextLoaderListener |
类型 | 名称 | 英文 |
---|---|---|
建立型模式 | 工厂模式 | Factory Patterns |
单例模式 | Singleton Pattern | |
原型模式 | Prototype Pattern | |
结构型模式 | 适配器模式 | Prototype Pattern |
装饰器模式 | Decorator Pattern | |
代理模式 | Proxy Pattern | |
行为型模式 | 策略模式 | Strategy Pattern |
模板模式 | Template Pattern | |
委派模式 | Delegate Pattern | |
观察者模式 | Observer Pattern |
须要特别声明的是,设计模式历来都不是单个设计模式独立使用的。在实际应用中,一般是多个设计模式混合使用,你中有我,我中有你。