Java

Java

ilya kot

Статический фабричный метод вместо конструткора

Одним из преимуществ статических фабричных методов является то, что, в отличие от конструкторов, они имеют имена.

Вторым преимуществом статических фабричных методов является то, что, в отличие от конструкторов, они не обязаны создавать новые объ­екты при каждом вызове.

Третье преимущество статических фабричных методов заключается в том, что, в отличие от конструкторов, они могут возвращать объект лю­бого подтипа их возвращаемого типа.

Четвертым преимуществом статических фабричных методов является то, что класс возвращенного объекта может варьироваться от вызова к вызову в зависимости от входных параметров.

Пятое преимущество статических фабрик заключается в том, что класс возвращаемого объекта не обязан существовать во время разработки класса, содержащего метод.

Основное ограничение предоставления только статических фабрич­ных методов заключается в том, что классы без открытых или защищен­ных конструкторов не могут порождать подклассы.

Вторым недостатком статических фабричных методов является то, что их трудно отличить от других статических методов.


Билдер

Шаблон проектирования Строитель является хорошим выбором при проектировании классов, конструкторы или статические фабрики ко­торых будут иметь большое количество параметров, особенно если многие из этих параметров оказываются необязательными или имеют одинаковый тип.

//Методы во внутреннем классе:
public Builder carbohydrate(int val){
carbohydrate = val;
return this;
}
public NutritionFacts build(){
return new NutritionFacts(this);
}
//Вызов
NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8)
.calories(100).sodium(35).carbohydrate(27).build();

Ковариантное типизирование возврата.

Шаблон Строитель для иерархий классов


Синглтон

Синглтон — это просто класс, который инстанцируется только один раз.

Реализуется или так:

public static final Elvis INSTANCE = new Elvis();

или через геттер.







Report Page