知乎上看到一句话:设计模式就是将软件中变化的部分和不变的部分分开。
具体解释:https://blog.csdn.net/wiki_su/article/details/80263967
对应到日常开发
工厂模式:ioc
单例模式:spring bean的作用域单例模式
建造者模式:java的StringBuilder。StringBuilder维护了一个缓冲区,使用者通过组合这些方法,并传递不同的参数,就可以用来构建各式各样的字符串了,这正是使用了建造者模式。
原型模式:克隆Object clone() 方法,通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式
装饰器模式:和继承很像,比如开发中继承类,都可以扩展功能;
代理模式:aop
外观模式:子系统之间的调用,只暴露简单的实现
模板模式:有多个子类共有的方法
观察者模式:监听器,订阅——发布系统
迭代器模式:JAVA 中的 iterator
责任链模式:springmvc中的拦截器