点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我想通过动态属性向某些对象添加某些行为。 我还担心那些属性是否经常使用,那么,每次调用属性处理程序都会影响性能吗? 例如,假设我要向产品添加属性" isSpecial",该属性将基于其他一些属性即时计算。 如果每次我将产品添加到购物车时都要调用此方法,是否应该将逻辑移到服务中(并分散到很多地方)以节省性能(对于像购物车这样的重物)?
我应该像这样调用属性处理程序吗?
公共类ProductXXXAttributeHandler实现DynamicAttributeHandler {
@Override
public Boolean get(ProductModel product){
返回product.getExclusiveTill()!= null?product.getExclusiveTill()。after(new Date()):false;
}
或者我应该将其移至"添加到购物车策略"中,例如:
公共类XXXCommerceAddToCartStrategy扩展了DefaultCommerceAddToCartStrategy {
公共CommerceCartModification addToCart(CommerceCartParameter参数)抛出CommerceCartModificationException {
...
ProductModel产品= paramter.getProduct();
isExclusive = product.getExclusiveTill()!= null?product.getExclusiveTill()。after(new Date()):false;
....
}
哪个人会更快?
您应该记住,不缓存动态属性。 因此,如果读取次数太频繁,将会影响性能。
如果我必须使用逻辑
product.getExclusiveTill()!= null?product.getExclusiveTill()。after(new Date()):false;
在没有其他任何地方添加到cnd的同时,我将其保留在该策略中; 否则(为了使产品属性的此计算值可在多个地方重复使用(例如用于个性化等),我将使其动态化。一周热门 更多>