> -- Пётр Кушнир писал(а):
> По определению, конструктор это метод класса и вызывается ПРИ создании экземпляра, а не ДЛЯ его создания. Поэтому получается, что в языках с конструкторами сначала new, а потом вызов конструктора.Иначе пришлось бы new назвать конструктором. Ну, породил, значит "конструктор".new - это аллокатор же, если скалькировать слово напрямую. А конструктор, по определению, приводит свежесозданный объект в допустимое состояние. В Object Pascal вызов аллокатора синтаксически совмещён с конструктором, в джаве и др. тоже (имя конструктора должно совпадать с именем класса), но всегда конструкторы связаны с двумя аспектами - создание объекта и приведение его в допустимое состояние. Конструктор как метод класса - так это же просто способ языковой реализации, как же ещё установить связь между конструктором и классом? Пришпандорили как метод, да и всё тут.

Посмотрел, как конструкторы реализованы в джаве, питоне, С++ и дельфи. Везде инициализация полей привязана к созданию объекта. То есть, языковый конструктор есть, по факту, реализация паттерна Конструктор. Надо разводить паттерн и языковую реализацию.