gpt4 book ai didi

java - 为什么需要工厂模式,因为我可以使用多态性完成任务?

转载 作者:行者123 更新时间:2023-12-01 18:29:34 24 4
gpt4 key购买 nike

我有一个类和接口(interface),如图所示

package com;

public interface Animal {

public void makeSound();

}

Dog.java

package com;

public class Dog implements Animal {

@Override
public void makeSound() {

System.out.println("Ruf Ruf");

}

}

Cat.java

package com;

public class Cat implements Animal {

@Override
public void makeSound() {

System.out.println("Meow Meow");

}

}

测试器.java

public class Tester {

public static void main(String args[]) {

Tester tester = new Tester();
Dog dog = new Dog();
Cat cat = new Cat();

tester.show(dog);

}

public void show(Animal animal) {

animal.makeSound();
}

}

为什么需要工厂模式,因为我可以使用多态性完成任务?

我正在关注本教程tutorialspoint.com/design_pattern/factory_pattern.htm,所以在这种情况下,ShapeFactory 类在这里有什么用? ??

最佳答案

工厂模式用于创建对象,它是一种创建模式。在您的示例中,如果您有一个类 AnimalFactory,它生成了您的猫和狗,那么它将是一个工厂模式。

您在发布的代码中真正做的是自己创建DogCat对象并调用重写的方法(这是动态的)根据对象类型进行调度)。在工厂模式中,您依赖另一个实体来为您生成对象

关于java - 为什么需要工厂模式,因为我可以使用多态性完成任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com