设计模式
设计模式是指在软件设计中,被反复使用的一种代码设计经验。目的是应对代码复杂度,提高扩展性和可复用性。
用大白话讲,设计模式就是一种设计思想。
- 比如,在业务开发中,你需要创建一个对象。原先的思想是“你去new一个对象”。用了工厂模式的思想后,“你不再去new了,你是跟工厂去要对象”。
- 比如,你想给一个对象扩展一下原有功能。原先的思想是“喂,类xx,你把自己的功能加一段逻辑,扩展下”(类xx改动)。用了装饰器的思想后,“类xx,你啥也别动,我来给你赋能”(类xx不改动)。
综上:设计模式就是一种思想,只不过用了这种思想后,你代码的扩展性和可复用性能大大提高。
那么算法也是思想,那为什么算法不能叫做设计模式??? 两种的侧重点不一样。算法侧重功能和性能,设计模式侧重扩展性和复用性。
设计模式的6个基本原则
- 单一职责原则(Single Responsibility Principle)
- 里氏代换原则(Liskov Substitution Principle)
- 依赖倒转原则(Dependence Inversion Principle)
- 接口隔离原则(Interface Segregation Principle)
- 迪米特法则,又称最少知道原则(Demeter Principle)
- 开闭原则(Open Close Principle)
设计模式的种类
一共有23种设计模式,当然还有很多的变形。 大致分为4类。
- 创建型
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
- 结构型
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
- 行为型
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)
- J2EE型
MVC 模式(MVC Pattern)
业务代表模式(Business Delegate Pattern)
组合实体模式(Composite Entity Pattern)
数据访问对象模式(Data Access Object Pattern)
前端控制器模式(Front Controller Pattern)
拦截过滤器模式(Intercepting Filter Pattern)
服务定位器模式(Service Locator Pattern)
传输对象模式(Transfer Object Pattern)