Ornstein napisał(a):
Port:
public interface WeatherDataFetcher { WeatherDto fetchWeatherData(String locationName) throws IOException; }Adapter:
@Service class WeatherDataClient implements WeatherDataFetcher { @Override public WeatherDto fetchWeatherData(String locationName) throws IOException { // implementacja np. jakieś WeatherAPI } }Domena:
class UserWeatherDataHandler { private final WeatherDataFetcher weatherDataFetcher; private final UserWeatherDataSaver userWeatherDataSaver; UserWeatherDataHandler(WeatherDataFetcher weatherDataFetcher, UserWeatherDataSaver userWeatherDataSaver) { this.weatherDataFetcher = weatherDataFetcher; this.userWeatherDataSaver = userWeatherDataSaver; } public void fetchAndSaveWeather(int userId, String locationName) { WeatherDto weather = weatherDataFetcher.fetchWeather("Warszawa"); userWeatherDataSaver.saveWeatherToUser(weather, userId); } }Klasa która zawiera szczegóły techniczne - i tutaj odbywa się całą magia, czyli przypisanie "pogody" użytkownikowi:
class UserWeatherDataSaver { }
Riddle napisał(a):
Jedyne do czego bym się doczepił, to to że ta Twoja klasa
UserWeatherDataHandlernie ma logiki żadnej. Sens istnienia tej klasyUserWeatherDataHandlerjest trochę... wątpliwy. No ale technicznie może być.
Tak się zastanawiam. UserWeatherDataHandler to domena. Zasugerowałeś, że ta klasa powinna zostać usunięta, czego do końca nie rozumiem. Bo usuwając UserWeatherDataHandler, usunę domenę. Co w takim razie będzie domeną po usunięciu tej klasy?