内容由B站UP主动力节点产出,本文仅作为学习笔记
享元模式
定义:运用共享技术减少创建对象的数量,从而减少内存的占用,提升性能。
public interface Employee{
public void report();
}
public class Manager implements Employee{
private String department; // 部门
private String noteContent; // 汇报内容
public Manager(String department){
this.department = department;
}
// getter & setter
@Override
public void report(){
System.out.println(noteContent);
}
}
创建工厂类(共享技术),批量创建所需对象(减少了对象的创建):
public class ManagerFactory {
private static final Map<String, Employee> EMPLOYEE_MAP = new HashMap<>();
public static Employee getManager(String department) {
Manager manager = (Manager) EMPLOYEE_MAP.get(department);
if (manager == null) {
manager = new Manager();
manager.setNoteContent(department + "部门经理来此汇报工作");
EMPLOYEE_MAP.put(department, manager);
}
return manager;
}
}
至此,减少了对象的创建,后续获取Manager
对象可直接从EMPLOYEE_MAP
集合中获取,减少开销。