设计模式
豆腐花发
哦呜
展开
-
策略模式
介绍 当if-else或switch分支太多时,阿里规范要使用策略模式 定义一个算法接口,多个实现算法的具体类,将每个算法都封装起来,并且使它们之间可以互换。UML结构图如下: Context是上下文,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用;Strategy是策略类,用于定义所有支持算法的公共接口;ConcreteStrategy是具体策略类,封装了具...原创 2019-10-17 15:01:26 · 113 阅读 · 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可以自动注入值到入参类中 继承HttpServletRequestWrapper public class RequestWrapper extends HttpServletRequestWrapper { /** * getInp...原创 2019-09-26 18:43:18 · 609 阅读 · 0 评论