【发布时间】:2012-05-12 20:31:50
【问题描述】:
我正在尝试用 Java 创建一个非常简单的工厂方法设计模式示例。我真的不太懂 Java,一般来说我是编程新手,但我需要想出一个用 java 实现的基本 FactoryMethod 示例。以下是我想出的。我敢肯定有很多错误,我显然缺少一些构造函数,并且我对抽象类和接口感到困惑。您能否指出我的错误并纠正我的代码以及解释?提前感谢您的时间和帮助。
public abstract class Person
{
public void createPerson(){ }
}
public class Male extends Person
{
@Override
public void createPerson()
{
System.out.print("a man has been created");
}
}
public class Female extends Person
{
@Override
public void createPerson()
{
System.out.print("a woman has been created");
}
}
public class PersonFactory
{
public static Person makePerson(String x) // I have no Person constructor in
{ // the actual abstract person class so
if(x=="male") // is this valid here?
{
Male man=new Male();
return man;
}
else
{
Female woman=new Female();
return woman;
}
}
}
public class Test
{
public static void main(String[] args)
{
Person y= new Person(makePerson("male")); // definitely doing smth wrong here
Person z= new Person(makePerson("female")); // yup, here as well
}
}
【问题讨论】:
-
类有一个隐式的、无参数的
new,除非你定义了一个带参数的构造函数。 -
"...请更正我的代码并附上解释?"这不是家庭作业修正服务。请向我们展示任何编译错误并描述任何行为问题。这里的努力应该是你的。
-
@Hovercraft Full Of Eels 这不是作业。我正在为考试而学习,我需要学习 FactoryMethod 设计模式。互联网上到处都是 Java 示例,我觉得这些示例过于复杂。我不是想“作弊”我想了解这就是为什么我向您提供了我编写但不起作用的代码。
-
这不是作弊的问题,而是你的问题,你真的不应该试图让别人难以帮助,你应该更加努力。你应该发布你的错误信息,你应该努力尝试调试你的代码并展示这个努力的结果。如果您寻求免费建议,这样做是正确的。
标签: java design-patterns factory