- 博客(18)
- 收藏
- 关注
原创 2022-18-Java 设计模式-适配器模式
基本介绍适配器模式,将某个类的接口转换成客户端期望的另一个接口表示。主要目的是让原本接口不兼容的两个类可以协同工作。适配器的别名为包装器。属于结构型模式。主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。工作原理将一种接口转换成另一种接口,让原本接口不兼容的类可以兼容。从用户角度是无法看到被适配者的,因此是解耦的。用户直接调用适配器转化出来的接口,适配器再调用被适配者的接口。类适配器模式3.1 基本介绍适配器类Adapter通过继承被适配类Source,并实现目标接口Targ.
2022-05-12 11:11:33 167
原创 2022-16-Java 设计模式-建造者模式
建造者模式基本介绍建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式的四个角色Product(产品角色): 一个具体的产品对象。Builder(抽象建造者): 创建一个Product对象的各个部件指定的 接口/抽象类。
2022-05-12 10:01:21 148
原创 2022-15-Java 设计模式-抽象工厂模式
在工厂方法模式中,我们使用一个工厂创建一个产品,一个具体工厂对应一个具体产品,但有时候我们需要一个工厂能够提供多个产品对象,而不是单一的对象,这个时候我们就需要使用抽象工厂模式。 在介绍抽象工厂模式前,我们先厘清两个概念:产品等级结构:产品等级结构指的是产品的继承结构,例如一个空调抽象类,它有海尔空调、格力空调、美的空调等一系列的子类,那么这个空调抽象类和他的子类就构成了一个产品等级结构。产品族:产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。比如,海尔工厂生产海尔空调、海尔冰
2022-05-11 10:58:52 3451
原创 2022-14-Java 设计模式-工厂模式-工厂方法模式
工厂方法模式是对简单工厂模式的改进,简单工厂的缺陷在于不符合“开闭原则”,每次添加新产品类就需要修改工厂类,不利于系统的扩展维护。而工厂方法将工厂抽象化,并定义一个创建对象的接口。每增加新产品,只需增加该产品以及对应的具体实现工厂类,由具体工厂类决定要实例化的产品是哪个,将对象的创建与实例化延迟到子类,这样工厂的设计就符合“开闭原则”了,扩展时不必去修改原来的代码。定义工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(VirtualConstructor)模式
2022-05-11 10:39:13 146
原创 2022-13-Java 设计模式-工厂模式-简单工厂模式
简单工厂模式定义为:简单工厂模式又称为静态工厂方法模型,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式结构图:简单工厂模式包含如下角色: 1.Factory(工厂角色) 工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有实例的内部逻辑;工厂类可以直接被外界直接调用,创建所需的产品对象;在工厂类中提供了静态的工厂方法fact
2022-05-11 10:02:47 165
原创 2022-11-Java 设计模式-单例模式
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-05-09 10:28:29 109
原创 2022-30-JVM深度学习-1-类的加载过程
在了解JVM的体系结构之前,我们需要了解到类的加载的过程。 如果 JVM 想要执行这个 .class 文件,我们需要将其装进一个类加载器 中,它就像一个搬运工一样,会把所有的 .class 文件全部搬进JVM里面来。...
2022-03-10 16:45:25 1629
原创 2022-10-Java 设计模式概括和设计原则
一.设计模式定义(Design Patterns) 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的...
2022-02-25 23:14:41 77
原创 2022-12-Java 设计模式-原型模式(克隆模式)
一 原型模式的应用场景 在java中我们知道通过new关键字创建的对象是非常繁琐的(类加载判断,内存分配,初始化等),在我们需要大量对象的情况下,原型模式就是我们可以考虑实现的方式,原型模式也被称为克隆模式。二 原型模式的用法 原型模式我们也称为克隆模式,即一个某个对象为原型克隆出来一个一模一样的对象,该对象的属性和原型对象一模一样。而且对于原型对象没有任何影响。原型模式的克隆方式有两种:浅克隆和深度克隆...
2022-02-24 22:33:23 178
原创 2022-09-Guava的用法
一、概述Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。guava的优点:高效设计良好的API,被Google
2022-02-17 16:46:00 1307
原创 2022-08-Java核心类-集合
先了解一下什么是 List Queue Set 以及MapJava容器类类库的用途是"保存对象",并将其划分为两个不同的概念:1 Collection一组"对立"的元素,通常这些元素都服从某种规则 1.1) List必须保持元素特定的顺序 1.2) Set不能有重复元素 1.3) Queue保持一个队列(先进先出)的顺序2 Map一组成对的"键值对"对象Collection和Map的区别在于容器中每个位置保存的元素个数:Collection 每个位置只能保存一个元素(对象)M
2022-02-16 15:32:20 216
原创 2022-05- 在反射中使用Annotation
在反射的 Class, Method, Field 等函数中,有许多于 Annotation 相关的接口。这也意味着,我们可以在反射中解析并使用 Annotation。AnnotationTest.javaimport java.lang.annotation.Annotation;import java.lang.annotation.Target;import java.lang.annotation.ElementType;import java.lang.annotation.Reten
2022-02-11 15:21:59 352
原创 2022-04-Java 8 新特性 Stream
Java 8 中新增的 Stream 类提供了一种新的数据处理方式。这种方式将元素集合看做一种流,在管道中传输,经过一系列处理节点,最终输出结果。Stream的三个过程1.Stream的五种创建方法使用数组String[] arr = { "ma", "zhi", "chu", "is", "java", "developer", "family" }Stream<String> stream1 = Arrays.stream(arr);使用CollectionsStri
2022-02-11 15:19:46 418
原创 2022-02-java 8 新特性 方法引用(::)
方法引用使得开发者可以直接引用现存的方法、Java类的构造方法或者实例对象。方法引用和Lambda表达式配合使用,使得java类的构造方法看起来紧凑而简洁,没有很多复杂的模板代码。1 方法引用的分类类型 语法 对应的Lambda表达式静态方法引用 类名::staticMethod (args) -> 类名.staticMethod(args)实例方法引用 inst::instMethod
2022-02-10 11:05:56 107
原创 2022-01-java 8 新特性 Lambda表达式
如果在JDK8的环境下如下所示按照Java传统的语法规则编写一个线程。new Thread(new Runnable() {@Overridepublic void run() {System.out.println(“Hello World!”);}});使用Lambda表达式则只需要使用一句话就可代替上面使用匿名类的方式。new Thread(() -> System.out.println(“Hello World!”));在Lambda表达式中也可以直接调用方法...
2022-02-10 10:11:42 286
原创 SpringBoot中的Bean初始化方法-@PostConstruct
注解说明使用注解: @PostConstruct效果:在Bean初始化之后(构造方法和@Autowired之后)执行指定操作。经常用在将构造方法中的动作延迟。备注:Bean初始化时候的执行顺序: 构造方法 -> @Autowired -> @PostConstruct
2021-03-08 10:53:22 206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人