1、简介
设计模式.就我的而言.说白了就是让代码直接的耦合度没那么高.编程
这样系统的拓展性、伸缩性更强,毕竟功能的需求突飞猛进.每天改改改.设计模式
因此有一个良好的架构,在改需求时能够提升你的效率.架构
Jdk源码中io流就用到了装饰者模式.还有基于接口的动态代理模式invovation框架
Spring框架中也用了单例模式、代理模式ui
2、分类
共23种,分三大类spa
1.建立型(5种):把对象的实例化过程抽象出来,把对象的引用和建立过程抽离出来,达到松耦合的效果.net
对对象建立过程的各类问题和解决方案的总结设计
工厂模式、抽象工厂、单例模式、建造者模式、原型模式代理
2.结构型(7种):是针对软件设计结构的总结,关注于类、对象继承、组合方式的实践经验对象
适配模式、桥接模式、装饰者模式、外观模式、组合模式、亨元模式
3.行为型(11种):是从类或对象之间交互、职责划分等角度总结的模式
代理模式、观察者模式、策略模式、模板方法模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
3、六大原则
1.开闭原则
对拓展开放、修改关闭
2.里氏替换原则
父类的引用指向子类的对象
3.控制反转原则
针对接口编程,不依赖具体
4.接口隔离原则
每一个接口各自的职责,必要时使用多个接口
5.迪米特法则
一个实体尽可能少地与其余实体间发生相互做用.最好要有层级引用关系
6.合成复用原则
尽可能使用组合/聚合的方式,而不是使用继承
4、模式传送门
4.1建立型
工厂模式(Factory):http://www.javashuo.com/article/p-djuuevzq-nx.html
抽象工厂(Abstract):http://www.javashuo.com/article/p-mitsxbpm-nx.html
单例模式(Single):http://www.javashuo.com/article/p-eaokhrqk-nx.html
原型模式(Prototype):http://www.javashuo.com/article/p-elvbykae-nx.html
建造者模式(Builder):http://www.javashuo.com/article/p-feufgvev-nx.html
4.2结构型
适配器(Adaptor):http://www.javashuo.com/article/p-ckfhcruf-nx.html
桥接模式(Bridge):http://www.javashuo.com/article/p-uznawaim-nx.html
装饰者(Decorator):http://www.javashuo.com/article/p-wngtndji-nx.html
外观模式(Facade):http://www.javashuo.com/article/p-zfmavemx-nx.html
组合模式(Composite):http://www.javashuo.com/article/p-sscnhzbu-nx.html
享元模式(FlyWeight):http://www.javashuo.com/article/p-hawtfuaf-nx.html
4.3行为型
代理模式(Proxy):http://www.javashuo.com/article/p-omiiqvcl-nx.html