b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

微服务架构 云计算 重构 -改变既有代码的设计 ---- 笔记(19)

电脑杂谈  发布时间:2018-10-13 16:05:07  来源:网络整理

to


    class Employee...
        static final int ENGINEER = 0;
        static final int SALESMAN = 1;
        static final int MANAGER = 2;

        void setType(int arg) {
            _type = EmployeeType.newType(arg);
        }
        int payAmount() {
            return _type.payAmount(this);
        }
    }

    class Engineer...
        int payAmount(Employee emp) {
            return emp.getMonthlySalary();
        }
    }

动机

如果对象的行为因其类型而异,请避免编写显示的条件

Switch 声明在面向对象语言中应该尽量少的被使用

你不得不检查对象是否为Null对象

将null值替换为null对象


    if (customer == null){
        plan = BillingPlan.basic();
    } 
    else{
        plan = customer.getPlan();
    }

to


    class Customer {

    }

    class NullCusomer extends Customer {

    }

动机

对象根据其类型做正确的事情,Null对象也应该遵守这个规则

某段代码需要对程序状态做出某种假设

已断言明确表现这种假设


    double getExpenseLimit() {
        // should have either expense limit or a primary project
        return (_expenseLimit != NULL_EXPENSE) ?
            _expenseLimit:
            _primaryProject.getMemberExpenseLimit();
    }

to


    double getExpenseLimit() {
        Assert.isTrue (_expenseLimit != NULL_EXPENSE || _primaryProject != null);
        return (_expenseLimit != NULL_EXPENSE) ?
            _expenseLimit:
            _primaryProject.getMemberExpenseLimit();
    }

动机

断言是一种明确表达会为true的行为

当断言失败时往往是一个非受控的异常

断言往往在生产代码中移除

交流层面 : 断言能使程序的阅读者理解代码所做的假设

在调试的角度 : 断言能使编程者尽可能近的接触bug

函数的名称不能表达函数的用途

修改函数名称

    getinvcdtlmt()

to

    getInvoiceableCreditLimit

动机

函数的名称最好能表达函数的意图

某个函数需要从调用端得到更多的信息


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-19.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 高田由美
      高田由美

      日本海军普遍吨位3300吨以上

    • 董婷婷
      董婷婷

      伊拉克再听美国猪的话

    • 李处全
      李处全

      不管是老旧舰还是新锐舰或航母舰

    热点图片
    拼命载入中...