NỘI DUNG BÀI VIẾT
Mục đích
Luyện tập triển khai Factory Method Pattern
Mô tả bài toán
Tạo một lớp AnimalFactory trả về một đối tượng động vật dựa trên một số dữ liệu đầu vào. Để bắt đầu, Animal là một lớp trừu tượng, AnimalFactory sẽ trả lại một lớp con được khởi tạo của Animal. Animal có một phương thức trừu tượng là makeSound().
Các bước thực hiện
Bước 1: Tạo lớp Animal
public abstract class Animal { public abstract String makeSound(); }
Bước 2: Tạo lớp Dog kế thừa từ Animal
public class Dog extends Animal { @Override public String makeSound() { return "Woof"; } }
Bước 3: Tạo lớp Cat kế thừa từ Animal
public class Cat extends Animal { @Override public String makeSound() { return "Meow"; } }
Bước 4: Tạo lớp FactoryAnimal
public class AnimalFactory { public Animal getAnimal(String type) { if ("canine".equals(type)) { return new Dog(); } else { return new Cat(); } } }
Bước 5: Tạo lớp FactoryDemo chứa phương thức main() để thực thi chương trình
public class FactoryDemo { public static void main(String[] args) { AnimalFactory animalFactory = new AnimalFactory(); Animal a1 = animalFactory.getAnimal("feline"); System.out.println("a1 sound: " + a1.makeSound()); Animal a2 = animalFactory.getAnimal("canine"); System.out.println("a2 sound: " + a2.makeSound()); } }
Bước 6: Chạy chương trình và quan sát kết quả trả về.
Nguồn tham khảo tại: https://github.com/codegym-vn/java-web-design-pattern-factory
Tham khảo thêm: https://www.avajava.com/tutorials/lessons/abstract-factory-pattern.html