public WeatherForecastService(IWeatherReaderPort weatherForecastPort, ITempratureConverter tempretureConverter, ISmsSenderPort smsSenderPort) { //Fail fast //Guard Clouse if (weatherForecastPort == null) { throw new ArgumentNullException(@"IWeatherReaderPort"); } _weatherForecastPort = weatherForecastPort; _tempratureConverter = tempretureConverter; _smsSenderPort = smsSenderPort; }
//Factory Method private IWeatherForecastPort CreateForecastPort(IWeatherReaderPort weatherReaderPort, ISmsSenderPort smsSenderPort = null) { return(new WeatherForecastService(weatherReaderPort, CreateTempratureConverter(), smsSenderPort)); }