组合模式

组合模式

一、组合模式是什么?

Compose objects into tree structure to represent part-whole hierarchies.Composite lets client treat individual objects and compositions of objects uniformly.

组合模式(Composite Design Pattern):将一组对象组织成树形结构,以表示一种“部分 - 整体”的层次结构。

也可以这么说,组合模式就是把容器与内容看成同一种对象,并将它们组合成树状结构,创造一种递归的形式。

比如文件和目录,虽然直观上是不同的对象,但是如果使用组合模式来实现它们的话,可以将文件和目录都看成是继承于同一种条目类,因此算是属于同一类对象。

 适配器模式

适配器模式

一、什么是适配器模式?

适配器模式(Adapter Design Pattern):将一个类的接口转换成希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

适配者模式的几个特点:

  • 已存在旧接口实现
  • 希望使用新接口,但是又不想重新实现,想要复用已有的旧接口实现类

适配器模式,就是将旧接口实现适配为新接口。

 原型模式

原型模式

一、什么是原型模式?

原型设计模式(Prototype Design Pattern),是指根据实例原型、实例模型来生成新的实例对象。

也就是用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。

重点在于新实例对象,不是创建出来的,而是基于已有的原型对象复制的。

 建造者模式

建造者模式

一、什么是建造者模式?

建造者设计模式(Builder Design Pattern),是指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。

  • 使用建造者模式的目的,就是为了解决复杂对象的构建

它将一个复杂的对象分解为多个简单的对象,然后一步一步构建起来。

 抽象工厂模式

抽象工厂模式

一、什么是抽象工厂模式

抽象工厂(AbstractFactory)是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产“一个等级”的产品,而抽象工厂模式可生产“多个等级”的产品。

 工厂方法模式

工厂方法模式

一、什么是工厂方法模式?

又称工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。

即将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,由子类来决定应该实例化(创建)哪一个类。

被创建的对象称为“产品”,把创建产品的对象称为“工厂”。

 单例模式

单例模式

一、什么是单例模式?

单例设计模式(Singleton Design Pattern):指一个类只有一个实例,且该类能自行创建这个实例的一种模式。

这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。

单例模式有 3 个特点:

  1. 单例类只有一个实例对象
  2. 该单例对象必须由单例类自行创建
  3. 单例类对外提供一个访问该单例的全局访问点

 HashMap

HashMap

一、定义

1
2
3
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
}

二、实现

2.1 数据结构

HashMap 的底层数据存储结构是“数组 + 链表 + 红黑树”,红黑树结构是 JDK8 之后进行的优化。

 快速排序的一些总结

前言:最近又写到了有关快速排序的代码,结果半天写不对。从代码的整体上来说,代码结构是没问题的,就是在边界问题上出现了错误,经过一番思考以及查询资料,终于完美解决了,因此特地小记一下。

快速排序的一些总结

一. 简介

快速排序算法,它的基本处理思路就是:

  1. 先将数据分割成两部分:一份小,一份大
  2. 然后再分别对这两部分数据进行快速排序

以此达到数据的排序,其基本逻辑代码如下: