????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?????????????浠�?????

???????????????????????????????????围????????椤VC????????????????????????????????????????????????????????????V????????????????????????

????????????????????????????纬?????DTO????????????????????????????????????????????纬?????Facade???????????????????纬伞???????????????????????????

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

????????????????????????????????????????????????????????????????????????????????????????????????????????梅?????????????????????????????????????????????????????????????????????纬?????????????????

???????????违???????????????????????????Override???械????????????些???????????????????????????????????????????????????胁???

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

???????????浠�???????????渭??????????????????????械??????????????!??????????????????????????????????浠�???渭???????浠�?????????

????3.Liskov?婊�???(LSP)

?????????????????婊�??????????????????????????婊�??????????????????????????????????????????慰??????尾???????蔚??????瑁�?????????????浠�;???????蔚??????瑁�?????????????????????尾????????渭?小?

????4.???????????(DIP)-?????榀�??????????????;?????????????????

???????-???
????????????????????????????????????????????????????????????????????????????????????????????浠�???????????浠�?????????????????????浠�??

?????????????????????????????LSP???????????????????????????????????????卸?????????????????????????????????????????????