JAVA:享元模式(Flyweight Pattern)的技术指南

1、简述

享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来减少内存的使用和对象的创建,从而提高程序的性能。

设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git


2、什么是享元模式

享元模式通过共享对象来支持大量细粒度对象的复用,避免对象的大量创建。它通过将可共享的状态外部化,把内在状态封装到享元对象中,从而让同一对象可以被多个上下文环境共享。

享元模式的优点:

  • 节省内存:通过共享对象,避免创建大量相似的对象。
  • 提升性能:减少对象创建和销毁的开销,优化系统性能。
  • 分离状态:将对象的内在状态和外部状态分离,增强了灵活性。

3、实际案例

假设我们要实现一个绘图应用,其中有许多相同颜色和形状的图形。如果为每个图形单独创建对象,会导致内存浪费。通过享元模式,我们可以复用相同颜色的图形对象。

// 抽象享元类
public interface Shape {
   
    void draw(String extrinsicState);
}

// 具体享元类
public class Circle implements Shape {
   
    private String color; // 内在状态

    public Circle(String color) {
   
        this.color = color;
    }

    @Override
    public void draw(String extrinsicState) {
   
        System.out.println("Drawing Circle: Color = " + color + ", Extrinsic State = " + extrinsicState);
    }
}

// 享元工厂类
import java.util.HashMap;
import java.util.Map;

public class ShapeFactory {
   
    private static 

你可能感兴趣的:(设计模式,java,享元模式,开发语言)