-5
我有以下代碼,我不知道如何最好地重構它。發生了什麼是代碼只處理第二個「公共MyShipService」,但我需要調用兩者(或重構使兩個工作)。有任何想法嗎?需要重構公共類
public class MyShipService : AnotherService, IShipService
public MyShipService(IStateService stateservice)
{
_shipToService = new CallShipService();
_stateService = stateService;
}
public MyShipService(ICountryService countryservice)
{
_shipToService = new CallShipService();
_countryService = countryService;
}
shippingAddresses.Each(sa => sa.State =_stateService.GetStateByAbbrev(sa.State.TwoLetterAbbr));
shippingAddresses.Each(sa => sa.Country = _countryService.GetCountryByAbbrev(sa.Country.TwoLetterAbbr));
return shippingAddresses;
那麼,爲什麼不從'do stuff'和'像上面那樣做同樣的東西'的通用代碼放到一個私有方法中,這兩個MyShipService方法都可以調用? – DeanOC
轉移到私有方法是有意義的,但問題是必須調用MyShipService兩次,以便它可以指向不同的服務。代碼正在處理MyShipService並查看狀態存儲庫以返回貨件的狀態信息,然後我需要查看ICountryService以查找該訂單的國家/地區信息。該類只調用第二個公共MyShipService並忽略第一個。 –
你的第二個構造函數是做第一個構造函數的SAME事物,還是運行該代碼然後運行自己的附加代碼? –