Java 设计模式
Java 设计模式系列文章
0oIronhide
努力看懂spring源码
展开
-
【设计模式】单例模式
本篇文章总结自 【狂神说Java单例模式】bilibili【狂神说Java】单例模式单例模式可以由四种方式来实现饿汉式懒汉式内部类式枚举饿汉式单例,在类加载的过程中对象直接被实例化,没有线程安全问题,但当类中属性很多时,会耗费大量的资源public class Hunger { private Hunger() {} private static fina...原创 2020-05-02 00:07:06 · 123 阅读 · 0 评论 -
【设计模式】抽象工厂模式
本篇文章总结自 【狂神说Java抽象工厂模式】bilibili 狂神说Java抽象工厂模式工厂模式本质:实例化不用new,用工厂模式来代替可选择实现类,创建对象统一管理和控制,从而将调用者与实现类解耦先来看抽象工厂模式的结构图:可以看到产品分支与工厂分支是独立开来的,产品分支分为多个产品接口,一个产品接口又可以有多个实现类。而工厂分支中的大工厂指定了可以生产哪些产品,其实现类(华...原创 2020-05-03 16:53:19 · 444 阅读 · 1 评论 -
【设计模式】建造者模式
本篇文章总结自 【狂神说Java建造者模式】bilibili 狂神说Java建造者模式建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的对象主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)先按照上图写一个Demo,项目结构:ConnectionPool 是一个连接池对象,其包含了原创 2020-05-10 16:51:22 · 161 阅读 · 0 评论 -
【设计模式】工厂模式
本篇文章总结自 【狂神说Java工厂模式】bilibili 狂神说Java工厂模式工厂模式核心本质:实例化对象不使用 new,用工厂方法代替将选择实现类,创建对象统一管理和控制,从而将调用者跟我们的实现类解耦简单工厂模式例如工厂要生产不同品牌的汽车,有了工厂,消费者不需要手动去 new 一个汽车,只需要借助工厂返回对应的车即可,以下是简单工厂模式结构:红旗与特斯拉都实现了 Car 接口,表示两中汽车,CarFactory 具有返回两种汽车的方法,消费者只需调用工厂中方法即可:public原创 2020-05-15 21:49:11 · 269 阅读 · 0 评论 -
【设计模式】适配器模式
本篇文章总结自 【狂神说Java适配器模式】bilibili 狂神说Java适配器模式适配器模式核心当一个类需要使用到另外一个类的方法时,而这两个类之间并没有任何关系,如果一味的使用 new 对象的方式则非常冗余,所以需要一个适配器来拉近两者的关系,例如 B 类持有适配器对象,将 A 对象传入适配器中,让适配器调用 A 的方法适配器模式案例一【类适配器模式】电脑没有插网线的口,需要一个转接头将网线口转为 usb 接口。有电脑、网线、转接头三个类,电脑调用转接头的方法,转接头调用网线的方法,代码结构:原创 2020-05-16 13:25:15 · 272 阅读 · 0 评论 -
【设计模式】桥接模式
本篇文章总结自 【狂神说Java桥接模式】bilibili 狂神说Java桥接模式桥接模式桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。举产品与品牌的例子,每个品牌都有属于自己的电脑类型,这时我想获取某一个品牌的笔记本或台式机,一般会写一个电脑类,用台式机类去继承电脑类,再用不同品牌的台式机去继承台式机类,这种写法扩展性、维护性差,这时就可以使用桥接模式。看下图,可以将品牌(不同原创 2020-05-26 18:03:38 · 226 阅读 · 0 评论 -
【设计模式】代理模式
本篇文章总结自 【通俗易懂的23种设计模式教学】bilibili 狂神说Java代理模式代理模式介绍在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用。Spring AOP 底层原理就运用到了代理模式,例如要给核心代码加上打印日志等操作,如果只考虑写死代码,就直接在核心代码中加入日志,如果未来还需要改动日志的话,又需要修改核心代码,不符合开闭原则。而代理模式就是帮我们代理核心业务代码,分离出公共业务代码(例如日志)并帮我们调用核心业务代码。原创 2020-06-07 17:10:04 · 174 阅读 · 0 评论