Моя проблема в том, что я хочу обработать большую HTML страницу из Интернета с помощью Jsoup. Получив файл HTML, я хочу записать содержимое в файл, поэтому мне не нужно каждый раз устанавливать соединение inte rnet (для разработки и тестирования этого статуса достаточно c HTML для меня).
Из этого класса, который содержит этот документ JSoup, я хочу иметь экземпляр singleton.
Моя идея состояла в том, чтобы создать базовый класс Page
и два производных класса из это (PageFromFile
, PageWithHttp
). В этом случае экземпляр Page
не должен создаваться, но он должен содержать один абстрактный метод, getInstance
. Кажется, это противоречие.
Конечно, есть тривиальный способ сделать это: у меня есть только класс Page
, у него есть поле, независимо от того, был ли он прочитан из файла или из Интернета, и обращаться с вещами соответственно, но это не кажется элегантным способом. (В большинстве функций будет оператор if).
У меня два вопроса:
- Как бы вы реализовали мою проблему?
- Как Можно ли заставить его работать так, как я упоминал ранее? Так, например, есть абстрактный
Animal
класс, Dog
и Cat
расширяют его. Как я могу создать только один Animal
, Dog
или Cat
?