実際には単純なファクトリメソッドのデザインパターンの例をJavaで作成しようとしています。私はJavaを実際には知っていません、私は一般的なプログラミングには新しいですが、私はJavaで実装された基本的なFactoryMethodの例を考え出す必要があります。以下は私が思いついたものです。私は確かにかなりのエラーがあります。私は明らかにいくつかのコンストラクタを紛失しています。抽象クラスとインタフェースと混同します。あなたは私の間違いを指摘し、私のコードを説明とともに訂正してください。あなたの時間と助けのために事前に感謝します。ファクトリメソッドJavaのトラブルのパターン例
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 Eelsの完全なこれは宿題ではありません。私は試験のために勉強しており、FactoryMethodデザインパターンを勉強する必要があります。インターネットは、私が不必要に複雑に感じるJavaの例でいっぱいです。私は "欺く"しようとしていない私は私が書いたが、動作していないコードをあなたに提供した理由を学ぶことを試みている。 –