
设计模式
文章平均质量分 80
长臂人猿
进阶的猿猴
展开
-
设计模式——五种单例模式
前言 单例模式,简单的说就是:提供一个对外的公共方法来获取唯一的对象实例。 设计模式的精髓就是在于:找到变化,封装变化。这里,我们使用五种方式实现单例模式:懒汉模式饿汉模式双检锁静态内部类枚举类懒汉模式获取实例对象的时候才判定有没有生成对象,是为懒汉。/** * @Author: cbry * @Description: 懒汉模式 , 获取实例对象可能会有线程安全问题,是否线程安全可以加上 synchronized 关键字。 **/public class Lazy原创 2022-01-28 18:00:35 · 872 阅读 · 0 评论 -
设计模式——Builder建造者模式
前言buidler模式主要分为两种:1、经典builder模式;2、链式变形builder模式。主要使用链式变形builder模式。当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式(这是一个重要的应用场景:必选参数和可选参数)。解决的问题在对象A形参过多的情况下,我们往往如果要创建一个A对象的时候,有些参数是必须的,有些参数是选择性构建的。那么我们可能会这样实现:public Man(String name ){ ... ...}public Man(St原创 2022-01-26 12:55:40 · 1221 阅读 · 0 评论 -
设计模式——代理模式:CGLIB动态代理
前言关于jdk实现代理模式的AOP代理和详解主要放在本文中:设计模式——代理模式:JDK静态代理和动态代理的实例和实现。本文相对于jdk的代理模式,内容较为少,主要体现cglib代理模式实现动态代理AOP和cglib实现动态代理AOP的区别以及实例Demo。CGLIB和JDK实现AOP的区别JDK动态代理只能为接口实现动态代理。而不能对没有通过接口定义业务方法的类动态代理(因为jdk代理实现的实例对象会继承Proxy类,java的单继承原则使得他不能代理实现继承类对象);JDK的动态代理通过Pro原创 2022-01-08 18:22:04 · 781 阅读 · 0 评论 -
设计模式——工厂模式(简单、工厂方法、抽象工厂)详解
为什么要用工厂模式 为什么要使用工厂模式创建工厂对象?在业务实现过程中创建的对象可能是简单的对象,也可能需要进行复杂的逻辑加工来进行赋值逻辑处理等操作。为了解耦生成复杂对象(需要逻辑加工)和主业务逻辑之间的耦合度,采用工厂模式来解耦,使得逻辑加工在工厂中进行。 追加功能的时候不用修改代码,直接新增;比如说一个computer新增一个light。工厂模式的类别工厂模式我们可以由简到难分为:简单工厂工厂方法抽象工厂简单工厂 抽象化产品,工厂中有逻辑加工用于具体判断生成哪一个产品,进行原创 2022-01-08 16:46:57 · 812 阅读 · 0 评论 -
设计模式——代理模式:JDK静态代理和动态代理的实例和实现
前言 代理模式,我们这里结合JAVA的静态代理和动态代理来说明,类比Spring AOP面向切面编程:增强消息,也是代理模式。 而我们的静态代理和动态代理,与(service)接口和(serviceImpl)接口实现类有什么区别呢?静态代理的概念与其在理解上类似,可以说静态代理是实现类的增强消息。而且,静态代理针对的是所以实现接口的实现类(通过向上转型实现)。静态代理实现简述 本质上是一接口一代理,对该接口的所有实现类进行"增强"(额外)操作: 如下例:human接口有两个实现类:m原创 2021-08-22 13:24:55 · 728 阅读 · 1 评论 -
设计模式——命令模式详析
命令模式将其分为三个学习阶段:①简单;②一般;③撤回简单命令模式 ①定义一个灯类:Light.java,其中含有俩个方法:on、off负责开关 ②定义一个命令接口:Command.java(interface),含有必要的执行方法:execute(); ③实现具体的命令类,;命令接口...原创 2019-03-16 09:34:19 · 266 阅读 · 0 评论