-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事物,还是运行该代码然后运行自己的附加代码? –