![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
LC超人在良家
记录一下平时的工作
展开
-
自定义审批流程设计
一个审批流程要支持一下这个基本的要求:单人单人多级审批多人审批多人多级审批单人多级跳跃审批多人多级跳跃审批同一节点多人审批要解决这些问题我做了如下的数据库设计:审批流程图:...原创 2022-04-27 14:15:08 · 5923 阅读 · 0 评论 -
适配器模式
将一个类的接口转换成客户希望的另外-个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作!总结:类适配器模式,继承源类,实现目标接口。对象适配器模式,持有源类的对象,把继承关系改变为组合关系。接口适配器模式,借助中间抽象类空实现目标接口所有方法,适配器选择性重写。一、类适配器模式一般手机充电器输出的直流电压为5V,我们把交流电220V称为源,希望得到的直流电5V称为目标,而充电器即为适配器。可以看到,类适配器是通过继承源类,实现目标接口的方式实现适配的。但是,由原创 2021-12-29 09:07:05 · 76 阅读 · 0 评论 -
动静态代理模式
为什么要学习代理模式?因为这就是SpringAOP的底层!【SpringAOP和SpringMVC】面试必问代理就是中介角色代理模式分类:静态代理动态代理1. 静态代理角色分析:抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作客户:访问代理对象的人代理可以增加一些功能而且不用改变其他模块的代码缺点:一个真实角色就会产生一个代理角色。代码量会翻倍开发效率会变低2. 动态代理动态代理和静态代理角原创 2021-12-29 09:06:13 · 133 阅读 · 0 评论 -
建造者模式
它提供了一种创建对象的最佳方式。定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)例子:工厂(建造者模式) :负责制造汽车(组装过程和细节在工厂内)汽车购买者(用户) :你只需要说出你需要的型号(对象的类型和内容) ,然后直接购买就可以使用了(不需要知道汽车是怎么组装的(车轮、车门、发动原创 2021-12-29 09:06:41 · 106 阅读 · 0 评论 -
多种工厂模式
作用:实现了创建者和调用者的分离实例化对象不使用new,用工厂方法替代将选择实现类,创建对象统一管理和控制。从而将调者跟我们的实现类解耦。详细分类:简单工厂模式用来生产同一等级结构中的任意产品(对于增加新的产品,需要扩展已有代码)工厂方法模式用来生产同一等级结构中的固定产品(支持增加任意产品)抽象工厂模式围绕一个超级工厂创建其他工厂。该超级工厂称为其他工厂的工厂。1. 简单工厂模式(静态工厂)某种程度上不符合设计原则,但实际使用最多。有一个演变过程,从最原始的方法 - 静态工厂原创 2021-12-27 09:48:41 · 461 阅读 · 0 评论 -
单例模式(转变)
单例模式三个主要特点:1、构造方法私有化;2、实例化的变量引用私有化;3、获取实例的方法共有。枚举的单例不会被反射破坏package 单例设计模式;public enum Singleton { INSTANCE; public void doSomething() { System.out.println("doSomething"); }}调用方法:public class Main { public static void原创 2021-12-27 09:48:10 · 124 阅读 · 0 评论 -
策略模式(对不同情况的算法封装)
定义一个接口,里面有一个方法;然后不同情况定义成不同的类试实现这个接口,重写方法;再定义一个入参为接口的构造器的类,这样可以根据接口的实现不同而调用不同的算法方法。举例子:不同的会员买书又不同的折扣第一步:定义抽象策略对象(接口)public interface MemberStrategy { /** * 计算图书的价格 * @param booksPrice 图书的原价 * @return 计算出打折后的价格 */ publi原创 2021-12-27 09:47:21 · 342 阅读 · 0 评论 -
JDK 动态代理和CGLIB 动态代理
JDK 动态代理JDK 动态代理是面向接口的代理方式,其实现的原理是基于 InvocationHandler 接口,利用反射生成一个代理接口的匿名类,然后调用 invoke 方法。1:IUserService 接口。public interface IUserService { // 查询用户 void listUser(); // 新增用户 void saveUser(String userName, String password); // 修改用户原创 2021-12-25 19:47:43 · 150 阅读 · 0 评论