1、单例模式
单例模式是一种设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局节点。
特点:
- 保证一个类只有一个对象。
- 全局唯一访问点,能够在系统中方便地访问该实例。
客户端都没有意识到他们使用的一直是同一个对象。
单例模式有多种实现方式
1、懒汉式
是一种比较常见的实现方式,只有第一次使用时才会进行实例化,同步锁保证了线程安全,但是可能存在并发性能问题。
2、饿汉式
是一种在类被加载时就进行实例化的实现方式,因此不存在线程安全问题,但可能存在资源浪费问题。
等等。。。
举例说明:
日志工具类
在编写日志工具类时,往往需要全局使用同一个日志对象,避免多个日志对象同时输出造成重复的日志信息和资源浪费。这个时候可以使用单例模式来保证只有一个日志对象被实例化,并提供一个全局的访问接口。这样一来,所有的线程都可以通过该接口来访问同一个日志对象,避免了重复的实例化和资源浪费。
2、工厂模式
1、简单工程模式
简单工程模式是最基本的工厂模式,它通过工厂类来创建产品对象,客户端只需要传递参数给工厂类即可,而不需要关注对象的创建过程。
2、工厂方法模式
工厂方法模式是对简单工厂模式的升级,它把工厂类的职责变为了抽象工厂类来实现,各个具体工厂类只需要继承抽象工厂类并实现其中的工厂方法即可。
3、抽象工厂模式
抽象工厂模式是对工厂方法模式的进一步升级,它提供了一套接口,可以创建一系列有关联的对象,而不是单一的对象。抽象工厂模式将多个工厂方法抽象化后,使得工厂方法可以创建一系列相关的对象,这些对象之间有一定的逻辑关系,通过抽象工厂模式,只需要通过接口访问工厂及其产品就行了。
3、代理模式
4、策略模式
5、模板方法模式