gpt4 book ai didi

java - 父类(super class)及其子类的工厂模式

转载 作者:行者123 更新时间:2023-11-30 10:17:45 25 4
gpt4 key购买 nike

我有 3 个类,它们是另一个的子类:C 类 ->(子类)-> B 类 ->(子类)-> A 类。

每个类都是真实的,我想通过方法来选择实例化哪个类。我可以使用工厂方法和工厂模式来选择要创建的类吗?

谢谢。

最佳答案

是的,在您的上下文中工厂方法是可行的方法。我已经提供了如何实现它的快速示例。

import java.util.Scanner;

public class FactoryMethodExample
{
public static void main(String[] args)
{
Scanner reader = new Scanner(System.in);
System.out.println("Enter a letter A, B or C: ");
String input = reader.nextLine();
Factory factory = new ConcreteFactory();
A myClass = factory.getClass(input.charAt(0));
if(myClass != null)
{
myClass.print();
}
else
{
System.out.print("Wrong input");
}
}
}

class A
{
public void print()
{
System.out.print("I'm class A");
}
}

class B extends A
{
@Override
public void print()
{
System.out.print("I'm class B");
}
}

class C extends B
{
@Override
public void print()
{
System.out.print("I'm class C");
}
}

abstract class Factory
{
public abstract A getClass(Character letter);
}

class ConcreteFactory extends Factory
{
@Override
public A getClass(Character letter)
{
if(letter.equals('A'))
{
return new A();
}
else if(letter.equals('B'))
{
return new B();
}
else if(letter.equals('C'))
{
return new C();
}
return null;
}
}

关于java - 父类(super class)及其子类的工厂模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49589023/

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