设计模式
豆腐花发
哦呜
展开
-
策略模式
介绍当if-else或switch分支太多时,阿里规范要使用策略模式定义一个算法接口,多个实现算法的具体类,将每个算法都封装起来,并且使它们之间可以互换。UML结构图如下:Context是上下文,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用;Strategy是策略类,用于定义所有支持算法的公共接口;ConcreteStrategy是具体策略类,封装了具...原创 2019-10-17 15:01:26 · 112 阅读 · 0 评论 -
单例4种实现
懒汉式public class Singleton { private static Singleton singleton; private Singleton() {} //此类不能被实例化 public static synchronized Singleton getInstance() { if (singleton == null) { ...原创 2019-03-12 14:38:58 · 79 阅读 · 0 评论 -
六大设计原则
开闭原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则OCP,open-closed principle,是面向对象设计中最基础的设计原则,它指导我们如何建立稳定灵活的系统,开闭原则只定义了对修改关闭,对扩展开放。其实只要遵循下面5中设计模式,设计出来的软件就是符合开闭原则的。类,方法可以扩展,不能修改。面对新需求,增加代码,不是修改代码。关键就在于“抽象”。...原创 2019-04-05 22:44:19 · 117 阅读 · 0 评论 -
uml
1.Uml介绍1.1.依赖dependency虚线箭头表示。单向,“use a”关系。A依赖B, B是A的局部变量, 方法参数1.2.关联Association实线箭头表示单向或双向, “has a”关系。A关联B, B是A的成员变量。1.2.1.聚合Aggregation空心菱形实线箭头单向,是关联的一种A聚合B,生命周期不同,A是整体, B是局部, 整体不存...原创 2019-02-25 01:01:30 · 130 阅读 · 1 评论 -
原型模式
对象浅拷贝实现Clonable接口,重写clone方法public class Test { public static void main(String[] args) { User user = new User("lipo", 13, 1); Object clone = user.clone(); System.out.print...原创 2019-07-11 10:55:25 · 86 阅读 · 0 评论 -
委派模式
1.委派模式简介在常用的23种设计模式中其实面没有委派模式(delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式。在spring中的体现:Spring MVC框架中的DispatcherServlet其实就用到了委派模式。委派模式的作用: 基本作用就是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派...转载 2019-07-11 22:15:37 · 79 阅读 · 0 评论 -
装饰模式-包装request和response
包装request,把header中的token取出来,写入body中,controller用@RequestBody注解解析成pojo,token可以自动注入值到入参类中继承HttpServletRequestWrapperpublic class RequestWrapper extends HttpServletRequestWrapper { /** * getInp...原创 2019-09-26 18:43:18 · 605 阅读 · 0 评论