Фабричный метод в Java
Фабричный метод - статическая функция класса,
которая возвращает готовый экземпляр. Конструктор при
этом делают private, чтобы снаружи нельзя было
вызвать new напрямую: создание идёт только
через понятное имя метода.
Класс Post выдаёт черновик и опубликованную
запись разными фабричными методами:
class Post {
String title;
boolean published;
private Post(String title, boolean published) {
this.title = title;
this.published = published;
}
static Post draft(String title) {
return new Post(title, false);
}
static Post published(String title, String text) {
return new Post(title, true);
}
}
Соберем черновик и готовую запись через фабрику и выведем поля:
Post draft = Post.draft("Notes");
Post live = Post.published("News", "Hello");
System.out.println(draft.title + " " + draft.published);
System.out.println(live.title + " " + live.published);
Запись Post.draft("Notes") читается как
именованный способ получить объект. Внутри статического
метода по-прежнему доступен приватный конструктор.
Сделайте класс Employee с приватным конструктором
и полем name. Добавьте статический метод
intern(String name), который создаёт сотрудника
с переданным именем. Выведите имя из
Employee.intern("Ann").