package com.javarush.test.level16.lesson13.bonus01; import com.javarush.test.level16.lesson13.bonus01.ImageReaderFactory; import com.javarush.test.level16.lesson13.bonus01.common.ImageReader; import com.javarush.test.level16.lesson13.bonus01.common.ImageTypes; /* Factory method pattern 1. Внимательно посмотри, какие классы у тебя есть. 2. В отдельных файлах в пакете common создай классы JpgReader, PngReader, BmpReader, которые реализуют интерфейс ImageReader. 3. В отдельном файле в пакете bonus01 создай класс ImageReaderFactory с одним методом. 3.1. Подумай, как он должен называться. 3.2. Подумай, какие модификаторы должны быть у этого метода. 4. Этот метод должен: 4.1. для каждого значения из ImageTypes возвращать соответствующий Reader, например, для ImageTypes.JPG - JpgReader; 4.2. если передан неправильный параметр, то выбросить исключение IllegalArgumentException("Неизвестный тип картинки"). */ public class Solution { public static void main(String[] args) { ImageReader reader = ImageReaderFactory.getReader(ImageTypes.JPG); } }
package com.javarush.test.level16.lesson13.bonus01; import com.javarush.test.level16.lesson13.bonus01.common.*; public class ImageReaderFactory { public static ImageReader getReader(ImageTypes type) { if (type == (ImageTypes.JPG)) return new JpgReader(); else if (type == (ImageTypes.BMP)) return new BmpReader(); else if (type == (ImageTypes.PNG)) return new PngReader(); else throw new IllegalArgumentException("Неизвестный тип картинки"); } }
ПАКЕТ COMMON:
package com.javarush.test.level16.lesson13.bonus01.common; public class BmpReader implements ImageReader { }
package com.javarush.test.level16.lesson13.bonus01.common; public class PngReader implements ImageReader { }
package com.javarush.test.level16.lesson13.bonus01.common; public class JpgReader implements ImageReader { }
Leave A Comment