Diciamo che ho una classe Person
:
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string IdCard { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
public string Email { get; set; }
public string Credit { get; set; }
public Bank Bank { get; set; }
public Job Job { get; set; }
// etc.
}
Quando sono istanziati, le proprietà ottengono i loro valori da un database.
Un'altra classe sta visualizzando un Person
. Tuttavia, visualizza solo alcune delle proprietà disponibili. Cosa dovrebbe ottenere come argomenti?
class Program
{
void ShowPerson(string firstName, string LastName, string phone)
{
Console.WriteLine(firstName);
Console.WriteLine(lastName);
Console.WriteLine(phone);
}
}
o
class Program
{
void ShowPerson(Person person)
{
Console.WriteLine(person.FirstName);
Console.WriteLine(person.LastName);
Console.WriteLine(person.Phone);
}
}
Il vantaggio di inviare solo proprietà rilevanti è l'efficienza della memoria e SQL più preciso. Il vantaggio di inviare un'intera istanza è un codice molto più pulito e potenzialmente più semplice da modificare.
Quindi, quale dovrei usare? Grazie.
Nota:
- Questa domanda riguarda gli oggetti dati in particolare. La mia domanda è più generale e riguarda qualsiasi tipo di oggetto. Non sono uguali.
- Non sto chiedendo opinioni. Mi sto chiedendo se esiste una linea guida, un approccio o uno schema molto ben definito per affrontare questa situazione.