题目
介绍下享元模式
答案
享元模式(Flyweight Pattern)共享对象,减少内存消耗,提高性能。 适用场景: - 有大量对象时使用。 - 对象之间差别小,可共享内部状态。 示例:棋子共享 ```java import java.util.HashMap; import java.util.Map; // 享元对象 class ChessPiece { private String color; public ChessPiece(String color) { this.color = color; } public void display(int x, int y) { System.out.println(color + " piece at (" + x + "," + y + ")"); } } // 工厂 class ChessFactory { private static Map<String, ChessPiece> map = new HashMap<>(); public static ChessPiece getPiece(String color) { if (!map.containsKey(color)) { map.put(color, new ChessPiece(color)); } return map.get(color); } } // 测试 public class FlyweightTest { public static void main(String[] args) { ChessPiece black1 = ChessFactory.getPiece("Black"); ChessPiece black2 = ChessFactory.getPiece("Black"); black1.display(1, 2); black2.display(2, 3); System.out.println("Same object? " + (black1 == black2)); } } ```