设计模式 -- 享元模式

享元模式是一种用于减少内存使用和提高性能的结构型设计模式,通过共享可共享对象来减少实例数量。其优点包括节省内存、提高性能和增强灵活性,但可能带来线程安全问题和代码复杂性。文章介绍了享元模式的结构、优缺点,并通过实例展示了如何创建和使用享元模式。此外,提到了享元模式在Java中的应用,如字符串常量池和数据库连接池。
摘要由CSDN通过智能技术生成

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是享元模式?

        享元模式是一种结构型设计模式,其主要目的是通过共享尽可能多的对象来最小化内存使用和提高性能。它通过将对象分为可共享和不可共享两类来实现这一目标。可共享对象可以在多个上下文中重复使用,而不可共享对象则必须在每个上下文中创建新实例。

二、享元模式的优缺点:

优点:

  1. 减少对象的数量,节省内存空间和系统资源。

  2. 提高程序性能,因为减少了对象的创建和销毁次数。

  3. 可以共享对象状态,增加程序的灵活性和可维护性。

  4. 可以通过享元工厂来统一管理对象,方便管理和维护。

缺点:

  1. 对象共享可能导致线程安全问题,需要进行同步处理。
  2. 对象共享可能会导致代码复杂度增加,需要额外的代码来维护共享池。
  3. 对象共享可能会影响程序的可读性和可维护性,因为对象的状态被分散到了不同的地方。

三、享元模式的结构:

 

四、享元模式实战:

1.创建FlyWeight

 2.创建具体FlyWeight

3.创建FlyWeightFactory

 

 4.测试:

 5.结果:

五.总结:

Java中享元模式的应用场景:

  1. 字符串常量池:在Java中,字符串常量池就是一种享元模式的应用场景。在字符串常量池中,相同的字符串只会被保存一次,多个字符串可以共享同一个对象。

  2. 数据库连接池:在Java中,数据库连接池也是一种享元模式的应用场景。连接池中的连接对象可以被多个线程共享,避免了频繁创建和销毁连接对象的开销。

  3. 图形界面中的图形元素:在图形界面中,图形元素(如按钮、文本框等)可以被多个窗口共享,避免了重复创建相同的元素。

  4. 享元模式还可以用于优化大量相似对象的创建和销毁过程,例如游戏中的粒子系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值