• 每日代码


    public class CartMainTypeSelector {
    public static void selectCartMainType(CartContext context,CartOption options){
    Params params = context.getParams();
    if (params != null && params.isMiniCart()) {
    options.cartType = CartType.MINI_CART;
    return;
    } 
    if(context.getShopId() > 0){
    options.cartType = CartType.SHOP_TYPE;
    } 
    }

    一个很常见的方法,从参数一中读值,根据判断和计算,修改参数二的值。

    根据CQS(command query seperation)的思想,一个方法最好要么做查询,要么负责更新对象的状态。这样对于那么做查询的方法,我们就会很放心,因为我们可以以任意顺序和次数调用它们,并且它们的结果在大多数情况下都是可以预料的,不变的。

    public class CartMainTypeSelector {
    public static CartType getCartMainType(CartContext context){
    Params params = context.getParams();
    if (params != null && params.isMiniCart()) {
    return CartType.MINI_CART;
    } 
    if(context.getShopId() > 0){
    return CartType.SHOP_TYPE;
    } 
    }
    
    

     比较一下下面两段代码的可读性和安全性(从副作用的角度看)

    CartOption option = ...;
    CartContext context = ...;
    option.cartType=getCartMainType(context);
    
    
    CartOption option = ...;
    CartContext context = ...;
    selectCartMainType(context,option);
  • 相关阅读:
    steam
    node 循序渐进
    node 常用指令 node 扩展链接
    window 常用指令
    web API
    SHAREPOINT
    div设置边框黑框显示
    sharepoint更新多行文本webparth
    sharepoint读取启用了追加功能的多行文本的历史版本记录
    JS实现多附件上传(asp.net)
  • 原文地址:https://www.cnblogs.com/idior/p/3160922.html
Copyright © 2020-2023  润新知