设计模式
文章平均质量分 85
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
ThreadLocal(三) 线程上下文实战
场景: 某个复杂长链路请求, 例如下单, 需要多组件方法参与,但是对于各种参数聚合, 耦合度很高对于二次开发不方便解决思路: 利用 ThreadLocal 线程变量来完成, 以后每次改造只需要改造,或者向 ThreadLocal 中增加自己的参数即可,注意:禁止参与多线程!!!否则会导致参数丢失!!!!! 注意每个线程必须执行 destroy 操作!!! 建议在入口处进行线程变量初始化和销毁1. 创建业务上下文类package net.xinhuamm.converge.model.原创 2020-06-16 21:57:19 · 749 阅读 · 0 评论 -
使用 AOP 进行切面编程(打印日志)
场景 : 针对 controller 层 使用 AOP 进行日志打印思路: 使用 aop 进行切面编程, 针对 controller 层所有的类,进行方法切面, 打印日志1. 先在 pom.xml 文件中引入 aop 的依赖 <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> .原创 2020-06-16 21:09:26 · 1403 阅读 · 0 评论 -
最简单好用安全的单例模式实现
使用内部类实现 package com.zz.amqp1.multithread;/** * Description: 最简单好用的单例 * User: zhouzhou * Date: 2018-11-05 * Time: 15:50 */public class InnerSingleton { private static class Singleto...原创 2018-11-05 15:53:47 · 273 阅读 · 0 评论 -
Spring @Aspect 切面,动态代理教程
要使用AOP必须知道AOP的原理,这篇文章不做详述, 如需了解, 请直接坐电梯看我的另一片博文, 电梯在此!!!一般@Aspect 注解的切面, 通常可以用切面表达式, 和注解切面来完成我们的切面编程.首先必须引入依赖 <dependency> <groupId>org.aspectj</groupId> ...原创 2018-11-09 11:21:52 · 2620 阅读 · 0 评论 -
设计模式- 责任链设计模式
责任链模式责任链模式原理名词解释:责任链模式: 如果有多个对象都有机会处理请求,责任链可使请求的发送者和接收者解构, 请求沿着责任链传递, 知道有一个对象处理了他为止.-- 购买请求决策项目 决策因素: 价格 决策级别: 组长, 部长, 副总, 总裁 考虑扩展性: 如何设计: 和策略模式不同, 客户端不需要知道有几个处理...原创 2018-07-27 09:14:13 · 344 阅读 · 1 评论 -
Java设计模式之代理 -- Cglib动态代理(Spring)
Cglib动态代理,是Spring框架内给的一个代理模式, 由于jdk动态代理, 只能针对 有接口的对象, 而没有接口的对象则不能完成代理. 具体代码如下为 : 主要是针对 代理类进行改造, 实现MethodInterceptor 方法拦截器接口注意导包!!!:import org.springframework.cglib.proxy.MethodInterceptor;public class...原创 2018-04-05 23:04:03 · 342 阅读 · 0 评论 -
Java设计模式之动态代理(jdk动态代理)
上篇文章降到了静态代理, 但是代理类只能通过实现固定接口来完成;所以我们这篇讲JDK动态代理, 在讲之前我们先打开jdk 的帮助文档来查看一个关键的类, Proxy-----------------------------------------------------------Proxy 提供用于创建动态代理类和实例的静态方法,它还是由这些方法创建的所有动态代理类的超类。 例:创建某一接口 F...原创 2018-04-05 15:25:36 · 367 阅读 · 0 评论 -
Java设计模式之静态代理模式 (Spring Aop)
Aop 利用 代理模式实现功能增强Aop能做什么? 日志管理, 事务管理, 权限控制定义:代理模式(Proxy或者Surrogate),中文翻译"代理",所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.一些情况下,一个客户不想或者不能够直接的引用第一个对象,而代理对象可以在客户端对象之间起到中介的作用三种角色: 抽象主题角色:(现实生活中没有的, 代码里存在) ...原创 2018-04-04 16:34:58 · 344 阅读 · 0 评论 -
Spring编程事务管理(TransactionTemplate事务模板模式-企业实战)
在网上来来回回看来很多帖子, 针对TransactionTemplate的理解都不是很到位, 特地写一篇帖子来专门阐述Spring编程事务管理中 TransactionTemplate的模板事务管理.要读懂这篇文章,首先你要理解函数回调,与模板设计模式, 这边给你们我的博客传送门函数回调 模板设计模式Spring 对 事务管理 有编程式和声明式一般对回调. 模板, aop或者代理模式有一定理解的...原创 2018-04-14 16:13:13 · 6394 阅读 · 3 评论 -
Java设计模式之模板模式(Spring编程式事务模板实战)
模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何...原创 2018-03-22 14:53:36 · 1536 阅读 · 0 评论 -
Java设计模式之工厂设计模式之企业实战
工厂模式可以非常轻松的对接口实现类进行扩展, 符合我们编程思路.试想下我们需要生产一批汽车(接口为car), 能不能用统一的方式去生产各种类型的车呢? 扩展性强不强?新增一条新的扩展, 需要大改么?接下来我们来体会下,神秘的工厂设计模式.工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模...原创 2018-03-20 18:34:36 · 727 阅读 · 1 评论 -
用回调函数写一个测试方法运行时间
下面使用java回调函数来实现一个测试函数运行时间的工具类:如果我们要测试一个类的方法的执行时间,通常我们会这样做:java 代码 public class TestObject { /** * 一个用来被测试的方法,进行了一个比较耗时的循环 */ public static void testMethod(){ fo...转载 2018-03-13 11:40:26 · 927 阅读 · 0 评论 -
Java设计模式 之 回调模式 企业实战
笔者在写这篇文章前看来一堆关于回调模式的博客,但是都是皮毛不适用于企业级开发。在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。定义:所谓的回调,就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的...原创 2018-04-13 11:46:32 · 869 阅读 · 2 评论