[Thực hành] Factory Method

Creational Design Patterns

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


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *