package com.javarush.task.task14.task1408;
/*
Куриная фабрика
*/
public class Solution {
public static void main(String[] args) {
Hen hen = HenFactory.getHen(Country.BELARUS);
hen.getCountOfEggsPerMonth();
}
static class HenFactory {
static Hen getHen(String country) {
Hen hen = null;
if (country.equals(Country.BELARUS)){
hen = new BelarusianHen();
}
if (country.equals(Country.MOLDOVA)){
hen = new MoldovanHen();
}
if (country.equals(Country.RUSSIA)){
hen = new RussianHen();
}
if (country.equals(Country.UKRAINE)){
hen = new UkrainianHen();
}
System.out.println(hen.getDescription());;
return hen;
}
}
}
Правильно ли я написал код тут? Я исправил HenFactory.Hen на просто Hen. И еще мне не нравиться в цикле return hen - он вообще там не нужен вроде как, но без него ошибки выскакивают. Александр Решетников
6 уровень
Непонятки
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
27 мая 2018, 16:41
О каком цикле идет речь? И чем может не нравиться оператор возврата значения в методе, объявление которого предусматривает именно возврат значения?
0
Александр РешетниковExpert
27 мая 2018, 17:17
Не правильно написал, в методе.
0
--------Master
27 мая 2018, 17:21
Нормальное решение, кто-то предпочитает в каждом if или case сразу писать отдельный return, но фишка в том, что один return все равно должен присутствовать в явном виде, без каких-либо условий - иначе код просто не скомпилируется
0
Александр РешетниковExpert
27 мая 2018, 21:50
То есть он просто "должен пристутствовать"?) Я до этой поры думал, что в каждой строчке должен быть какой то смысл.
0
--------Master
27 мая 2018, 21:55решение
Если ты объявляешь метод, который возвращает какое-то значение, то этот метод должен возвращать значение в любом случае, а не когда тебе этого хочется. "Не нравиться" команда return - объявляй все методы как void ))
+2
Александр РешетниковExpert
28 мая 2018, 08:56
Понятно)
+1