Статические фабричные методы против конструкторов экземпляров (нормальных)? - PullRequest
45 голосов
/ 11 октября 2008

На языке, где оба доступны, вы бы предпочли видеть конструктор экземпляра или статический метод, который возвращает экземпляр?

Например, если вы создаете String из char[]:

  1. String.FromCharacters(chars);

  2. new String(chars);

Ответы [ 11 ]

0 голосов
/ 28 января 2019

Конечно, есть несколько преимуществ статических фабричных методов перед конструкторами.

  1. фабричные методы помогают нам писать гибкий код. В то время как конструкторы сделали его тесно связанным.
  2. Статические фабричные методы улучшают читабельность, поскольку они позволяют создавать разные экземпляры.
  3. Вы можете вернуть кэшированный объект. Например getInstance() в синглтоне.
...