![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 86
兮家小二
傻傻的小男孩,qq:1720696548 wx:1720696548
展开
-
设计模式--23种设计模式,实际使用示例演示Demo-- (内容更新中)(2022)
代码地址仓库: https://gitee.com/wslxm/xj-design-pattern1.1、简单工厂1、一句话描述1、生活示例: 我去冰箱拿东西出来吃,冰箱(工厂) 里面有 可乐,雪碧,雪糕等, 我可以指定去拿我想吃的东西2、业务示例: 我需要对某一个数进行加减乘除运算,创建运算工厂, 分别实现 加,减,乘,除 的逻辑即可2、代码生活示例 对应代码: design_1.1_factory.demo业务示例 对应代码: design_1.1_factory.demo1原创 2022-04-13 16:12:28 · 855 阅读 · 0 评论 -
java 策略模式的表设计与代码实现, 彻底解决 if 分支, 实现企业级功能启用禁用
一、描叙1、为什么要使用策略模式?在某些业务场景下,我想添加 qq登录,微信登录,阿里账号登录,网易账号第三方登录,但是在某一天可能因为一些原因,我们不需要其中一个第三方登录了,患者第三方不在提供支持,比如网易公司不再提供登录了, 那我们需要修改代码,移除网易账号登录功能,但是某天网易公司账号有可以使用了, 我们又需要修改代码来实现这一功能如果我们使用了策略模式, 我们在后台会有一个管理列表,可以直接禁用/ 启用某一个功能通过策略Id (前端传递) 找到对应的容器bend,调用对应的实现方法即可原创 2020-09-26 23:31:10 · 685 阅读 · 0 评论 -
单列模式的七种创建方式 及 使用反射和序列化破解单列
一、描述1、单例基本概念在当前Jvm中只会有一个该实例对象2、单例应用场景1.项目中定义的配置文件2.Servlet对象默认就是单例3.线程池、数据库连接池4.Spring中Bean对象默认就是单例5.实现网站计数器6.Jvm内置缓存框架(定义单例HashMap)7.定义枚举常量信息3/单例优缺点优点:能够节约当前堆内存,不需要频繁New对象,能够快速访问。缺点:当多个线程访问同一个单例对象的时候可能会存在线程安全问题。二、单列模式的 7种创建方式如果加上 反射创建 + 序列原创 2020-09-05 10:59:03 · 466 阅读 · 0 评论 -
基于 观察者模式设置监听 || 及使用 listener监听实现,处理多渠道消息通知(短信+邮箱+公众号消息推送等)
观察者描述1、观察者模式基本概念一个对象状态改变,通知给其他所有的对象2、观察者模式的应用场景Zk的事件监听、分布式配置中心刷新配置文件、业务中群发不同渠道消息一、使用 观察者模式设置监听使用 观察者模式 是异步执行的多渠道消息通知(短信+邮箱+公众号消息推送等)1、 SpringUtils 工具类/** * SpringUtils 工具类 */@Componentpublic class SpringUtils implements ApplicationContextAwar原创 2020-09-02 22:18:19 · 857 阅读 · 0 评论 -
基于装饰模式+ aop+ jvm-map + redis +注解设计一级 +二级缓存框架
缓存描述1、多级缓存基本概念在实际开发项目,为了减少数据库的访问压力,我们都会将数据缓存到内存中比如:Redis(分布式缓存)、EHCHE(JVM内置缓存).例如在早起中,项目比较小可能不会使用Redis做为缓存,使用JVM内置的缓存框架,项目比较大的时候开始采用Redis分布式缓存框架,这时候需要设计一级与二级缓存。2、装饰模式基本的概念不改变原有代码的基础之上,新增附加功能一、 代码结构二、具体代码1、自定义注解/** * 自定义缓存注解 */@Target({Eleme原创 2020-09-01 00:11:39 · 272 阅读 · 0 评论 -
java jdk动态代理 + cglib动态代理 / 及 @Async异步注解失效问题
什么是代理模式代理模式主要对我们方法执行之前与之后实现增强代理模式应用场景1.日志的采集2.权限控制3.实现aop4.Mybatis mapper5.Spring的事务6.全局捕获异常7.Rpc远程调用接口8.代理数据源Jdk与Cglib动态代理的区别1.Jdk动态代理利用反射技术生成匿名的代理类走 InvokeHandler回调方法实现增强,同时也是一种基于接口的方式实现代理。2.Cglib动态代理利用 asm字节码技术生成一个子类 覆盖其中的方法实现增强,同时采用fastCla原创 2020-08-30 22:29:06 · 1927 阅读 · 0 评论 -
聚合支付-- 使用模板方法处理对接各平台支付的异步回调(本文只包含对接多个支付平台的设计,不包含具体实现)
一、前要–实现流程及数据库设计数据安全使用toket 方法保证1、订单web 调用 订单服务创建订单信息并保存数据库2、订单服务 调用 具体支付服务传递订单信息3、支付服务保存订单信息 返回 toket 令牌到订单服务在返回订单web4、订单web 跳转 支付web页面携带toket 令牌5、支付web 调用 支付服务通过toket 获取订单信息在 调用 银联支付接口完成支付6、完...原创 2020-01-09 09:58:17 · 1850 阅读 · 0 评论 -
聚合支付-- 使用策略模式实现聚合支付流程(本文只包含对接多个支付平台的设计,不包含支付实现)
策略模式概要策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。角色的划分这个模式涉及到三个角色:● 环境(Context)角色:持有一个Strategy的引用。● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的...原创 2020-01-08 10:35:46 · 1837 阅读 · 0 评论 -
设计模式 ---- 单列,工厂,建造者,原型 || 代理, 适配器,组合,桥接,外观,装饰器,享元 || 观察者, 迭代子 ,策略,命令,状态,模板,访问者,中介者,备忘录,责任链,解释器
一、单列模式问题1:什么是单列模式?---------保证一个类只有一个实例,并且提供一个访问该全局访问点问题2:单列的应用场景?---------数据库连接池---------任务管理器---------回收站---------Web应用的配置对象的读取---------计数器---------HttpApplication 也是单位例的典型应用---------等等…问题...原创 2019-10-03 14:54:34 · 673 阅读 · 0 评论