这篇文章是关于我面试的求职面试问题,我在这里要求找到我应该用来解决它的不同方式。可变参数值不改变其签名的方法
面试官问我在白板上的我怎么会设计出将收到一个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),而且我非常紧张,刚才想到这个“简单”的解决方案,但看起来这是一个非常糟糕的选择。
我将不胜感激,如果你能引导我使用C#或Java的最佳途径来解决这个
我认为面试官希望你能有老大延长的人,alors你的方法不接收地址的列表,它接受它已经具备了一个人地址列表。我不确定你试图用Parameter来做什么。 –
因此不改变方法签名是一个要求?你在标题中写过,但从未在问题中澄清过。 –
恕我直言,“老板”应该有一个下属名单,而不是“人”列表老板......还有一个“老板”通常是一个人,因此班级老板应该扩展班级人。 –