Есть тысячи шаблонов, и вы должны знать некоторые из них. Есть большие курсы и книги по паттернам. В этой статье мы поговорим о шаблоне интерфейса Fluent . Это так просто и делает код намного чище, поэтому я не мог удержаться и не показать вам.
Очень часто у нас есть код, который создает такие объекты:
public Person generatePerson() {
Person person = new Person();
person.setFirstName("FirstName");
person.setLastName("LastName");
person.setAge(15);
person.setSex("M");
person.setCity("City");
person.setHairColor("Black");
return person;
}
class Person {
private String firstName;
private String lastName;
private int age;
private String sex;
private String city;
private String hairColor;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
// The rest of the getters/setters are
// using the same pattern
// ...
}
Теперь, чтобы реализовать шаблон, мы делаем два простых изменения во всех методах установки. Из этого:
public void setHairColor(String hairColor) {
this.hairColor = hairColor;
}
public Person setHairColor(String hairColor) {
this.hairColor = hairColor;
return this;
}
Сделаем это для всех сеттеров:
class Person {
private String firstName;
private String lastName;
private int age;
private String sex;
private String city;
private String hairColor;
public String getFirstName() {
return firstName;
}
public ServiceMappingDTO setFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public String getLastName() {
return lastName;
}
public ServiceMappingDTO setLastName(String lastName) {
this.lastName = lastName;
return this;
}
// The rest of the getters/setters are
// using the same pattern
// ...
}
public Person generatePerson() {
return new Person()
.setFirstName("FirstName")
.setLastName("LastName")
.setAge(15)
.setSex("M")
.setCity("City")
.setHairColor("Black");
}
Небольшой совет: если вы пишете геттеры и сеттеры вручную — прекратите это делать! Все современные IDE имеют простой способ их создания. В IntelliJ даже есть возможность генерировать сеттеры «Fluent interface».
Прежде чем идти — наш удивительный курс по чистому коду
Если вам понравилась эта статья, вам понравится и наш курс:
Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.
Наш язык является мощным инструментом, который может формировать наши мысли, отношения и действия. Даже кажущиеся безобидными термины могут увековечить вредные предубеждения и стереотипы.
Было уже за полночь, когда Хейден отвез Кэти обратно в общежитие колледжа после их совместного вечера. У нее был ранний урок утром, и у нее не было другой смены одежды после того, как она осталась с ним прошлой ночью.
Когда вы вырастаете, вам, как правило, говорят, что мир такой, какой он есть, и ваша жизнь состоит в том, чтобы просто жить своей жизнью внутри мира, никогда не рискуя своей жизнью, просто следовать установленному пути и умереть в конце, и стараться не слишком сильно бить стены. Но это очень ограниченная жизнь.
Это поражает меня Внезапно, как это часто бывает, Это снова и снова на полпути <Нет, не то, что в Тихом океане, ты темно-бордовый, то, что на карнавале> Каждый громкий заголовок…..
Любой здравомыслящий человек знает, что в политических и медийных кругах доминируют левые, даже крайне левые, что создает дисбаланс в политическом дискурсе. В области религии этот дисбаланс хорошо виден: левые газеты и сети не спешат защищать христианскую веру.