Я планирую простое приложение и хочу следовать принципам единой ответственности и инкапсуляции.
Основные игроки:
Класс API - который предоставляет возможность сохранения пользователя:
class API{
....
public void saveUser(id, name, address){
//save the received user in the DB
}
....
}
Класс DBConnector - предоставляет возможность сохранять пользовательские данные в БД.
Класс пользователя - который представляет пользователя.
По старинке метод saveUser будет выглядеть так:
IDBConnector connector = DBConnectorFactory.getDBConnector();
User user = new User(id, name, address);
connector.saveUser(user);
По новым принципам кажется, что правильный путь будет:
User user = new User(id, name, address, DBConnectorFactory.getDBConnector());
user.save();
Это правильно?
Должен ли пользователь обрабатывать сохранение БД?
Если нет, можете ли вы предложить лучший способ?