????????????е????
???????????? ???????[ 2014/5/6 17:04:29 ] ??????????????? ??? ???
????????????????????????????????????????????????????£??????????????????????????????????????????????£?
?????κ??????????д???????????????????Ψ??д???????????????????????????;
?????2??????????????;
??????????bug?????????д??????????????????bug;
????????о?????д?????????????????????????е?????????;
???????????????????????????????????????????????????????????????????????;
???????????????????????????????;
????д????????????????????С????漰???????????????????????????С????????д?????????????????????????????????????????????????????????????????????????????;
??????????????????????????????????????????θ??;
????Kent Beck:?????????????????????????????Щ????ó????????;
????????(Variable)
????????????????????????????????????????????????????????????????????????????????????????á??????????????????????????????????????????????????????????????????????????????????????????
????doublegetPrice(){
????int basePrice = _quantity* _itemPrice;
????double discountFactor;
????if (basePrice > 1000) discountFactor = 0.95;
????else discountFactor = 0.98;
????return basePrice * discountFactor;
????}
??????????
????double getPrice(){
????return basePrice()* discountFactor();
????}
????private int basePrice(){
????return _quantity* _itemPrice;
????}
????private double discountFactor(){
????if (basePrice()> 1000) return0.95;
????else return 0.98;
????}
??????????????????????????????????????????????????????????????
????if ((platform.toUpperCase().indexOf("MAC")> -1)&&
????(browser.toUpperCase().indexOf("IE")> -1)&&
????wasInitialized()&& resize> 0 )
????{
????// do something
????}
??????????
????final booleanisMacOs = platform.toUpperCase().indexOf("MAC")>-1;
????final boolean isIEBrowser =browser.toUpperCase().indexOf("IE") > -1;
????final booleanwasResized = resize >0;
????if (isMacOs&& isIEBrowser&& wasInitialized()&& wasResized){
????// do something
????}
?????????????????????????????????????????????????????????????????????????????????????????????????÷?????????????????????????????????????????????????????????????????????????????λ????????????????????????
?????????(Extract Method)
??????????????????????????С?????step1??step2??step3???????????趼???????????????????Щ???????????????????????????????????????????????????????????????????????????????????????????????????δ??????????????????????????????????÷??????????????????????δ?????????????????????????????????????γ???÷?????
???????????????????????????????????????????????????????????????????????????ü?????????????????в??????????????????????????????????????????????????????
??????????????????????????У????к???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????÷?????????????????????????????????????????????????????????????????????γ?????????????????
???????????????????????????????????????????????????????????????????????????????С?
????class Account...
????private AccountType_type;
????private int_daysOverdrawn;
????double overdraftCharge(){
????if (_type.isPremium()){
????double result = 10;
????if (_daysOverdrawn > 7) result += (_daysOverdrawn -7)* 0.85;
????return result;
????}
????else return _daysOverdrawn * 1.75;
????}
????double bankCharge(){
????double result = 4.5;
????if (_daysOverdrawn > 0) result +=overdraftCharge();
????return result;
????}
??????????
????classAccount...
????private AccountType _type;
????private int _daysOverdrawn;
????double overdraftCharge(){
????return _type.overdraftCharge(_daysOverdrawn);
????}
????double bankCharge(){
????double result = 4.5;
????if (_daysOverdrawn > 0)
????result += _type.overdraftCharge(_daysOverdrawn);
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11