摘要: 定义: ​ 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。把适配者类通过适配器转化为目标接口。 例如下图的将三角接口转换成我们希望的二角接口 适配器模式(Adapter)包含以下主要角色: 目标(Target)接口:当前系统业务所期待的接口,它可 阅读全文
posted @ 2024-07-05 17:21 hudad 阅读(6) 评论(0) 推荐(1) 编辑
摘要: 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 由于某些原因需要给某对象提供一个 阅读全文
posted @ 2024-07-05 15:29 hudad 阅读(2) 评论(0) 推荐(1) 编辑
摘要: 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 概述:建造者模式注重的是部件构建的过程,意在通过一步一步地精确构造创建出一个复杂的对象。 建造者(Builder)模式包含如下角色: 抽象建造者类(Bui 阅读全文
posted @ 2024-07-05 14:47 hudad 阅读(2) 评论(0) 推荐(1) 编辑
摘要: 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 概述:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 原型模式包含如下角色: 抽象原型类:规定了具体原型对象必须实现的 阅读全文
posted @ 2024-07-05 14:11 hudad 阅读(3) 评论(0) 推荐(1) 编辑
摘要: 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 抽象工厂模式也是⼀种创建型设计模式,提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 抽象工厂模式与工厂方法模式的区别:工厂方法模式的 阅读全文
posted @ 2024-07-05 14:02 hudad 阅读(2) 评论(0) 推荐(1) 编辑
摘要: 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 饿汉式 类加载就会导致该单实例对象被创建 /** * 饿汉式 * 静态变量创建类的对象 */ public class Singleton { //私有构 阅读全文
posted @ 2024-07-04 18:17 hudad 阅读(2) 评论(0) 推荐(1) 编辑
摘要: 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 在了解工厂方法模式之前,有必要对“简单工厂”模式进⾏⼀定的了解,简单工厂模式是⼀种创建型设计模式,但并不属于23种设计模式之⼀,更多的是⼀种编程习惯。 简 阅读全文
posted @ 2024-07-04 16:55 hudad 阅读(1) 评论(0) 推荐(1) 编辑
摘要: 冒泡排序 算法思想:基于比较的思想,从第一个元素开始,依次比较相邻两个元素大小,较大者放在后面,经过一轮后,最大的元素位于最后(最大元素不断冒泡到最后的位置),重复n轮。 选择排序 算法思想:基于比较的思想,维护一个记录最大值的变量,遍历所有元素找到最大值所在位置,将其与最后的位置交换,重复n轮。 阅读全文
posted @ 2024-07-03 18:57 hudad 阅读(2) 评论(0) 推荐(1) 编辑
摘要: 哈希函数的基本性质 函数定义域是无穷的,值域相对有限(但也很大,比如2的64次方) 输入同样样本一定得到同样的输出 输入不同样本可能得到相同输出,此时叫哈希碰撞 输入大量不同的样本,得到大量输出值,会几乎均匀的分布在整个输出域上 布隆过滤器 通过几个不同哈希函数计算哈希值,对位图长度取模,将对应位置 阅读全文
posted @ 2024-07-02 23:40 hudad 阅读(2) 评论(0) 推荐(1) 编辑
摘要: 常见的数据结构:数组、链表、队列、栈、、堆、二叉树、B树、哈希表、图 数组 因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来。根据索引查找元素,时间复杂度是 \(O(1)\)。 动态数组 动态数组具体代码实现 import java.util.Arrays; import 阅读全文
posted @ 2024-07-01 20:40 hudad 阅读(2) 评论(0) 推荐(1) 编辑