????return result;

????}

????classAccountType...

????double overdraftCharge(Account account){

????if (isPremium()){

????double result = 10;

????if (account.getDaysOverdrawn()> 7)

????result += (account.getDaysOverdrawn()- 7)* 0.85;

????return result;

????}

????else return account.getDaysOverdrawn()* 1.75;

????}

?????????(Extract Class)

??????????????????????????????????????????????????????????λ????!——???????????????????????;????????????????????????????????????????????С????????????????????????????????????????????????????????????????£?

????1.?????????(SRP)-???????????y?????????????仯?????

???????????????????????????????????Χ????????顣MVC????????????????????????????????????????????????????????????V????????????????????????

????????????????????????????γ?????DTO????????????????????????????????????????????γ?????Facade???????????????????γɡ???????????????????????????

???????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????÷?????????????????????????????????????????????????????????????????????γ?????????????????

???????????Υ???????????????????????????Override???е????????????Щ???????????????????????????????????????????????????в???

????2.????——??????(OCP)-?????????????????

???????????仯???????????μ??????????????????????е??????????????!??????????????????????????????????仯???μ???????仯?????????

????3.Liskov?滻???(LSP)

?????????????????滻??????????????????????????滻??????????????????????????????????????????ο??????β???????ε??????裺?????????????仯;???????ε??????裺?????????????????????β????????μ?С?

????4.???????????(DIP)-?????鯔??????????????;?????????????????

????????????????????????????????????????????????????????????????????????????????????????????仯???????????仯?????????????????????仯??

?????????????????????????????LSP???????????????????????????????????????ж?????????????????????????????????????????????