public class ImageReaderFactory {
private static ImageReader image;
public static ImageReader getImageReader(ImageTypes type) {
if (type == ImageTypes.JPG) {
return new JpgReader();
}
if (type == ImageTypes.BMP) {
return new BmpReader();
}
if (type == ImageTypes.PNG) {
return new PngReader();
}
throw new IllegalArgumentException("Неизвестный тип картинки");
}
}
Не могу понять, почему нельзя просто создать метод getImageReader(ImageTypes type). Почему нужно создавать private static ImageReader image и указывать ImageReader?
Chundrik
35 уровень
Зачем в getImageReader ImageReader?
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Egor Tehnik
18 сентября 2019, 17:44
это полиморфизм детка)
0
АлександрExpert
18 сентября 2019, 17:48
это сильная(строгая) типизация
0
Wladyslaw Java Developer Master
17 сентября 2019, 10:31
Ты имеешь ввиду зачем в классе поле
?
Да незачем, в общем-то, не нужно оно. А почему ты считаешь что его нужно объявлять? 0
Chundrik
17 сентября 2019, 19:39
Нет, вот тут:
public static ImageReader getImageReader(ImageTypes type)
0
АлександрExpert
17 сентября 2019, 19:49
это указание на возвращаемый тип
метод getImageReader возвращает объект класса ImageReader
+2
Wladyslaw Java Developer Master
17 сентября 2019, 20:17
Ну, собственно, тебе уже ответили - попробую еще накинуть аналогий, для более легкого понимания.
Это равно тоже самое что public int sum(int a, int b), например
Тип значения, которое метод вернет.
+3
Chundrik
18 сентября 2019, 08:20
Спасибо!))
0