この投稿は私が持っていた就職に関する質問ですが、ここでは解決方法を探しています。パラメータの値を変更せずにパラメータの値を変更する方法
インタビュアーは、私はPersonオブジェクトを受け取る方法を設計する方法をホワイトボードに書くために私に尋ねたので、私はこれを書い:
class Person
{
//Some properties
}
public void MyMethod(Person p)
{
}
その後、インタビュアーはメソッドがリストを受けなければならない私に言いました人のためのアドレス(配列)が、私はこのような変更:
:class Person
{
//Some properties
private List<Address> adds;
}
class Address
{
//Some properties
}
public void MyMethod(Person p)
{
}
それから彼は私がこれをしなかったので、この方法は、アドレスを持つ人のリストもその人のためにボスのリストを受けなければならない私に言いました
class Parameter
{
private List<Person> pers;
}
class Person
{
//Some properties
private List<Address> adds;
private List<Boss> boss;
}
class Address
{
//Some properties
}
class Boss
{
//Some properties
}
public void MyMethod(Parameter p)
{
}
(彼はメソッドのシグネチャを変更してはならない私に言ったすべての変更で)インタビュアーは、単に「OK」と述べたが、私は彼が私のアプローチと非常に確信していたとは思いませんでした、私はありませんC#またはJavaのエキスパート(インタビュアーは彼がJavaをマスターしていると言っていました)、私はこの「簡単な」解決策を思いついたのでとても緊張していましたが、非常に悪い選択でした。
あなたはうーんOK、私はここで言及する重要なことは、また、エンティティの行動に異なる見解だと思うC#やJavaの
は私がインタビュアーはあなたがボスは人を延長が期待思う);
は、これは、このトピックについての唯一の私の意見でありますアドレスのリスト。私はあなたがパラメーターで何をしようとしたか分かりません。 –
メソッドのシグネチャを変更しないことが必要でしたか?あなたはそのタイトルにそれを書いたが、質問でそれを明確にしたことはなかった。 –
IMHO 'Boss'は従業員のリストを持ち、' Person'は上司のリストではありません。また、 'Boss'は通常' Person'です。したがって、 'Boss'クラスは' Person'クラスを拡張する必要があります。 –