
深入浅出二十三种设计模式
一行一行敲代码,并且从JDK源码的角度来提出问题解决问题
锐利的aop
这个作者很懒,什么都没留下…
展开
-
状态模式
文章目录一、状态模式 一、状态模式 示例代码如下 /** * @Description: 抽象状态类 */ public abstract class AbstractState { abstract void Handle(Context context); } /** * @Description: 环境类 */ public class Context { private AbstractState state; public Context() {原创 2020-10-24 19:39:25 · 192 阅读 · 0 评论 -
策略模式和责任链模式
文章目录一、策略模式2.责任链模式 一、策略模式 策略模式,就是为了解决像有很多if else这样的代码 代码如下(示例): /** * 公共策略 */ public interface IStratery { void operator(); } public class StrateryA implements IStratery { public void operator() { System.out.println("派张飞从左翼杀出"); } }原创 2020-10-21 22:53:32 · 1534 阅读 · 0 评论 -
委派模式和模板方式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、委托模式1.概念二、模板方式1.概念总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、委托模式 1.概念 其实就是自己不干活,指派人干活 /** * 抽象员工 */ public interface Employee { void operator(String task); } /** * 员工A */ public class EmployeeA implements Employee {原创 2020-10-20 22:06:06 · 315 阅读 · 0 评论 -
适配器模式和桥接模式
文章目录一、适配器模式二、桥接模式 一、适配器模式 概念: 又叫变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,是属于结构模式中的一种。 场景: 比方说在业务场景中,我们有一个需求是要对接第三方登录,例如qq,微信和手机登录,那么该如何适配呢,看下方代码 /** * 登录接口 */ public interface ILogin { /** * 是否支持该方法 */ boolean s原创 2020-10-18 19:28:41 · 533 阅读 · 0 评论 -
享元模式和组合模式
文章目录一、享元模式二、使用步骤1.示例2.组合模式 一、享元模式 类似于线程池这一类,将使用的类缓存起来的方式就叫做享元模式。 二、使用步骤 1.示例 比方说我想实现买车,不同的车类型显示不同的价格 代码如下(示例): 抽象一个车类 public interface ICar { void showMessage(String type); } 车类 public class Car implements ICar{ private String name; private原创 2020-10-17 22:12:50 · 204 阅读 · 0 评论 -
门面模式和装饰器模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、门面模式二、装饰器模式1.引入场景2.解决问题总结 一、门面模式 门面模式其实我们一直都在用,可以说是一种强调封装的静态代理,举个例子就是你的controller,utils类,他封装了很多方法,你只需要调用这个方法即可,咱们重点说一下装饰器模式 二、装饰器模式 1.引入场景 我想买一辆裸车,然后再加一个真皮座椅,再染一下色 先来一辆车 public class Car { public String getMsg(原创 2020-10-16 00:34:35 · 746 阅读 · 0 评论 -
一步一步详细解析代理模式
文章目录一、静态代理二、动态代理1.JDK动态代理1.1 代码1.1 原理2.CGLib动态代理 一、静态代理 设置一个场景,小明想买台宝马,但是他对车一无所知,所以他拜托了自己的好朋友小李帮忙,那么代码如下 他们都是人 /** * 人类需求 */ public interface People { void need(); } 小明 /** * 对车一无所知的小明 */ public class Xiaoming implements People { public v原创 2020-10-14 23:51:02 · 418 阅读 · 0 评论 -
原型模式和建造者模式
文章目录一、原型模式1.浅克隆2.深克隆二、建造者模式 、 一、原型模式 原型模式其实咱们一直在使用,比方说,咱们从前端接收的参数实体类A1,与咱们插入数据库的实体类A2字段类型名称基本一模一样,我们就可以把A1的值全部给赋值A2,但是A2.setXXX(A1.getXXX())不够优雅,例如使用了BeanUtils.copyProperties()这个方法,就是属于原型模式实现的一种。 1.浅克隆 代码如下(示例): /** * * 浅克隆 */ public class ConcreteProt原创 2020-10-13 23:40:32 · 229 阅读 · 0 评论 -
一步一步剖析单例模式
文章目录一、单例模式的满足条件?二、饿汉式单例1.代码2.优缺点三、懒汉式单例1.代码2.优缺点3.改进4.双重检测型单例5.内部类型单例四、破坏单例1. 反射2.序列化破坏3.readResolve方法原理(多图预警)五、注册式单例1. 枚举式单例2. 容器式单例六、ThreadLocal单例 一、单例模式的满足条件? 1.必须一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点 2.单例模式属于创建型模式 二、饿汉式单例 1.代码 代码如下(示例): /** * @author zhuwenhu原创 2020-10-13 00:13:46 · 401 阅读 · 0 评论