设计模式
文章平均质量分 76
从入门到学废
超级码里喵
这个作者很懒,什么都没留下…
展开
-
Java设计模式总结(白话文版)
1.策略模式:官方描述:定义一系列算法,把他们封装起来,并且使它们可以相互替换。白话文描述:有共同的抽象行为,具体不同的行为称作为不同的策略,最终可以使用Context上下文获取对应策略。应用场景:解决多重if判断问题、聚合支付平台、第三方联合登陆、调用多个不同短信接口等。2.责任链模式:官方描述:将请求的发送者和接收者解耦,使的多个对象都有处理这个请求的机会。白话文描述:每一个业务模块之间相互依赖比较有关联、每个关联模块称作为handler(处理器)使用上一个handler引用到下一个hanl原创 2022-04-20 20:38:50 · 250 阅读 · 1 评论 -
深入理解Java设计模式——单例模式
目录一、什么是单例模式1. 单例模式优缺点二、单例模式应用场景三、单例的七种写法1. 饿汉式1.1 优缺点2. 懒汉式(线程不安全)3. 懒汉式(线程安全)4. 双重检验锁(DCL)5. 静态内部类形式6. 枚举形式7. 使用容器管理8. 如何方式破坏单例8.1 使用反射技术破解单例8.2 如何方式被反射破解8.3 使用序列化技术破解单例一、什么是单例模式1. 单例模式优缺点优点:1、单例类只有一个实例2、共享资源,全局使用3、节省创建时间,提高性能缺点:可能存在线程不安全的问题二、单例模式原创 2022-04-21 07:30:00 · 375 阅读 · 0 评论 -
深入理解Java设计模式——适配器模式
目录一、什么是适配器模式二、适配器模式角色划分三、适配器模式应用场景四、适配器创建的方式五、适配器快速入门例子六、使用适配器模式实现日志收集1. 对象适配器方式实现1.1 定义基本实体类2. 适配器模式优缺点七、Mybatis 日志收集分析1. slf4j源码分析一、什么是适配器模式将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变得可以调用。二、适配器模式角色划分适配器模式涉及3个角色:源(Adaptee):需要被适配的对象或类型, 旧版本或者苹果手机插口适配器(Adapt原创 2022-04-20 07:30:00 · 885 阅读 · 0 评论 -
深入理解Java设计模式——状态模式
目录一、什么是状态模式二、状态模式应用场景三、状态模式实现1. 需要重构的代码四、状态模式与策略模式区别五、状态模式实现一、什么是状态模式状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。二、状态模式应用场景一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。 通常,有多个操作包含这一相同的条件结构。State模式将每一个条件分支放入原创 2022-04-19 16:18:35 · 7933 阅读 · 3 评论 -
深入理解Java设计模式——外观模式
目录一、什么是外观模式二、外观模式应用场景三、相关代码实现1. Maven1. 需要重构代码2. 创建业务逻辑封装3. 创建门面接口4. 优点4.1 松散耦合4.2 简单易用4.3 更好的划分访问层次一、什么是外观模式外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。二、外观模式应用场景简单来说,该模式就是把一些复杂的流程封装成一个接口供给外原创 2022-04-19 11:41:20 · 491 阅读 · 1 评论 -
深入理解Java设计模式——观察者模式
这里写目录标题一、什么是观察者模式二、观察者模式应用场景三、观察者模式原理类图四、观察者模式简单的实现1. 抽象观察者2. 抽象主题者3. 具体主题4. 具体观察者5. 运行测试五、JDK自带观察实现消息发送1. 自定义主题2. 自定义观察者3. 运行监听开始六、Spring封装事件监听七、使用观察者模式模拟微信公众号一、什么是观察者模式在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息原创 2022-04-18 23:40:33 · 634 阅读 · 0 评论 -
Java设计模式
1. 为什么需要使用设计模式使用设计模式可以重构整体架构代码、提交代码复用性、扩展性、减少代码冗余问题。2. 设计模式六大原则开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。里氏代换原则(Liskov Substitution Principle)原创 2022-04-16 10:51:45 · 131 阅读 · 0 评论