Ну одна из основных концепций ООП - отделять абстракцию от реализации.
То есть тебе надо работать с настройками. Ты пишешь что-нибудь в духе:
Settings settings = new SettingsFactory();
А у тебя Settings это не класс, а интерфейс, который гарантирует, что полученный тобой объект будет содержать нужные тебе методы.
А SettingsFactory в свою очередь класс, который, опираясь на текущие настройки, положение звезд и погоду на Марсе, создает уже конкретный экземпляр класса.
А клиентский код (которому нужны настройки) даже не подозревает, что за магия происходит в фабрике. Ему пофиг. Он просто хочет получить настройки и не хочет знать как именно они получаются.
|