动态价值是否会对性能产生影响?

2020-09-12 17:54发布

         点击此处--->   EasySAP.com群内免费提供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;
 
  ....
  }


  

哪个人会更快?

         点击此处--->   EasySAP.com群内免费提供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;
 
  ....
  }


  

哪个人会更快?

付费偷看设置
发送
2条回答
hengyuye
1楼 · 2020-09-12 18:18.采纳回答

您应该记住,不缓存动态属性。 因此,如果读取次数太频繁,将会影响性能。

nice_wp
2楼-- · 2020-09-12 18:20

如果我必须使用逻辑 product.getExclusiveTill()!= null?product.getExclusiveTill()。after(new Date()):false; 在没有其他任何地方添加到cnd的同时,我将其保留在该策略中; 否则(为了使产品属性的此计算值可在多个地方重复使用(例如用于个性化等),我将使其动态化。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答