class weatherForecasterService{ constructor(options) { this.options = options ?? { appendAmountOfRainToForecast: false } } generateWeatherForecast(location) { let forecast = buildForecast(location); if(this.options.appendAmountOfRainToForecast) { forecast = appendAmountOfRain(forecast) } return forecast; } } class featureAwareWeatherForecasterServiceFactory{ build() { const options = { appendAmountOfRainToForecast: featureDecisions.appendAmountOfRainToForecast() } return new weatherForecasterService(options); } } const weatherForecaster = new featureAwareWeatherForecasterServiceFactory().build();