????????????????Working Effectively with legacy Code ??????£?????????????????????t?????????????????????????

??????1????????????????????

??????2????????λ??????t???????????t???????????????????

??????3??????????????????????и????á?

??????4?????????????Щ??????????????????????????

?????????????????е??????????????????????????????????譚????????????????????????????????????????????????????????????й???????????????????????????????????????????????????????????????У????????????????????п????????????????е???????????????????????????????

?????????????????У??????????δ?????Java??CreditValidator??

public class CreditValidator
       {
             public CreditValidator (RGHConnection connection??
                                             CreditMaster master??
                                             String validatorID) {
       }
     Certificate validateCustomer(Customer customer) throws InvalidaCredit{
      }
     public class RGHConnection
        {
              public RGHConnection(int port?? String Name?? String passwd) throws IOException {
             }
         }
    }

??????????????CreditValidator??????????????????RGHConnection??CreditMaster??validatorID??????RGHConnection???????????????????????????????????????????????????????????????????????

???????????CreditMaster???????Щ????????????????л??????????????????????????????????м?????????????????Щ????????????????????á?

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

public void testCreate() throws Exception {
       RGHConnection connection = new RGHConnection(DEFAULT_PORT??"admin"??"rii8ii9s");
       CreditMaster master = new CreditMaster ("crm2.mas"??true);
       CreditValidator validator = new CreditValidator(connection??master??"a");
}