1.多例模式使用场景?
比如对sku(对象的字段偏多)的字段进行操作,在上下文引用过程中需要频繁使用sku的较多字段,使用多例模式会使代码更加优雅和扩展性更高
2.LookupContext 生产多例对象的类
@Component
public abstract class LookupContext {
@Lookup("skuContext")
public abstract SkuContext skuContext();
}
3.SkuContext sku的上下文引用
@Slf4j
@Component
@Scope(SCOPE_PROTOTYPE)
public class SkuContext {
// sku的属性组list
List<Material> materialGroups;
@Override
public void wrapProcess(Sku sku) {
this.materialGroups=sku.getMaterialGroups();
log.info("属性:{}",materialGroups);
}
}
4.SkuService sku的执行类
@Slf4j
public class SkuService {
@Autowired
private LookupContext lookupContext;
void wrapProcess(Sku sku) {
// 包装流程
lookupContext.skuContext().wrapProcess(sku);
}
}
5.总结
如果后续需要对sku做个性化差异,继承SkuContext的类实现差异化,然后将多例注入到LookupContext中就行了。
QQ交流群: 132312549