[Thực hành] Factory Method

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

Bài viết liên quan

Leave a Reply

Your email address will not be published.

TÀI LIỆU DEV WORLD
Cẩm nang phát triển bền vững với nghề lập trình!