一. 场景
- 要RPC发送大量通知消息,每条通知消息都是一个对象,每条通知消息的大部分内容都是一样的
二.实现
享元模式 + @JsonUnwrapped(即扁平化对象,具体场景具体考虑)
先偷一张享元模式的UML图
代码示例
public class SubConcrete{
@JsonUnwrapped
private FatherConcrete shared;
private String subElements;
}
并不是纯享元模式,单纯借鉴部分思想
基于http的RPC,API接口
大部分相同的资源都在shared中,序列化打散。
三 为什么可以这样做,效果如何?
为什么可以这样做?
1.序列化后是没有状态的
2.可变属性较共享属性少
效果?
shared所占空间越多,SubConcrete越多,效果越好
四 你还要考虑的事
不要一股脑把所有要发送的对象堆到一起慢慢跑。即创即用即释放
手动赋null,真的不丢人