admin 管理员组

文章数量: 1184232


2024年3月28日发(作者:getche)

java常用的设计模式及应用场景

一、单例模式(Singleton)

单例模式是一种对象创建型模式,它指的是设计一个类,使其只能生成一个实例。它

只提供一个类实例,保证只有一个实例存在。

有时候,只需要一个类的实例来控制整个系统,例如实现一个全局的缓存,或是建立

一个共享的日志记录器,单例模式可以很好的实现这个目的。

应用场景:

1、对于需要频繁创建和销毁的对象,可以考虑使用单例模式,以避免过多地重复创

建和销毁造成系统开销。

2、对于某些资源比较宝贵的对象,例如数据库连接,则可以用单例模式进行封装,

保证全局应用程序只有一个,从而避免重复创建,浪费资源。

二、工厂模式(Factory)

工厂模式是一种类创建型模式,它把类的实例化推迟到子类来完成。它用于隔离客户

类和实例化对象,通过声明抽象类类来定义构造过程,将不同的定义转移到不同的子类中

去,从而使用户不需要关心实例化过程。

1、在有大量不同对象需要创建和管理的情况下,可以利用工厂模式封装类的实例化

和存储,将池中不同对象来进行统一管理。

2、在使用设计模式的情况下,复杂的类结构已经不适合用一个实例来创建,可以采

用工厂模式实现多个类的实例化,让用户不用关心对象实例的创建过程。

抽象工厂模式是一种工厂模式的拓展,它把简单工厂模式的单一职责拆分为多个类,

从而实现一个系列相关的或相互依赖的工厂,以满足比较复杂的对象创建需求。

1、在需要创建复杂对象,而复杂对象又由多个部件组成的情况下,例如计算机,单

一工厂模式已经不能满足需求,那么可以通过抽象工厂模式来实现。

2、在需要产生大量不同类型的对象,或者存在一系列相互依赖的产品族,这种情况

下可以使用抽象工厂模式,将工厂定义为不同维度组成的一个系列。

四、建造者模式(Builder)

建造者模式是一种设计模式,它也叫构造子模式,通过使用建造者模式,客户端可以

不必担心具体的生产过程,只需要给出具体的请求,由建造者来负责构造出请求的产品对

象。

1、在有复杂的产品对象的时候,例如需要对多个部件进行拼装,以构造出复杂的对

象,可以采用建造者模式将复杂的拼装过程进行封装,避免复杂的拼装过程变得混乱。

2、在有很多可选的部件,但是只有部分组合会得到最终产品的情况下,可以使用建

造者模式,将有效的组合进行封装,避免产品结构混乱。


本文标签: 模式 对象 实例 工厂 需要