Традиционное представление ООП состоит в том, что конструктор должен гарантировать, что объект находится в своем конечном, пригодном для использования состоянии - то есть состояние может измениться, если, конечно, существуют динамически изменяющиеся требования (например, есть ли disconnect
)метод с этим connect
, и фактическое требование приложения для включения динамического изменения маршрутизации в ходе операций?), но оно «должно» оставаться пригодным для использования с момента рождения объекта и до его исчезновения.
В реальном мире альтернативный шаблон, иногда известный как «двухфазное построение» (хотя здесь, конечно, это может быть больше, чем просто две фазы, поскольку вы продолжаете называть connect
;-) может иметь некоторые преимущества с точки зрения гибкости - сохранение и удаление объектов, правильное построение их в зависимости от конфигурационных файлов, упрощение внедрения зависимостей и проверки (и, следовательно, тестирования).
Являетесь ли вы на самом деле собирается воспользоваться этими аспектами гибкости, на этот вопрос вы можете ответить лучшедаже лучше, чем мы ... так как вы лучше всего знаете точные требования своего приложения, свои навыки и предпочтения в разработке ОО, тестировании и т. д.Если вы не , на самом деле собираетесь использовать аспекты гибкости, то проще вообще их опустить и перейти к подходу ООП "традиционный самодостаточный конструктор".