Ho una classe chiamata MyClass e un metodo chiamato Get che assomiglia a qualcosa del tipo:
public class MyClass{
string ClassVariable1 {get; set;}
string ClassVariable2 {get; set;}
string ClassVariable3 {get; set;}
public MyClass Get()
{
..set variable1, variable2, and variable3..
return new MyClass()
{
ClassVariable1 = variable1,
ClassVariable2 = variable2,
ClassVariable3 = variable3
};
}
}
return null;
}
}
C'è qualcosa di sbagliato nel farlo dal punto di vista del design? O qualsiasi altra prospettiva?
Suppongo che per rendere questo più chiaro, pubblicherò il mio codice reale. Sto scrivendo un'app per Facebook e la mia classe si chiama "FacebookAccount". L'idea è che questo contenga cose relative ad un account di Facebook, come nome dello schermo, email dell'utente, recenti aggiornamenti di stato fatti dall'utente, ecc.
class FacebookAccount
{
public AccessToken AccessToken { get; set; }
public string ScreeName { get; set; }
public long FacebookUserId { get; set; }
public string Email { get; set; }
public List<StatusUpdate> ScheduledStatusNotPosted { get; set; }
public List<StatusUpdate> StatusPosted { get; set; }
private Facebook Facebook { get; set; }
public List<FacebookAccount> Get(string userId)
{
var facebookAccountList = new List<FacebookAccount>();
using (DataContext dc = new DataContext())
{
var facebookAccount = dc.FacebookAccounts.Where(x => x.UserId == userId);
foreach (var account in facebookAccount)
{
var faceBook = new Facebook(account.UserId, account.UserId);
facebookAccountList.Add(new FacebookAccount()
{
AccessToken = new AccessToken() { Token = account.Token, TokenSecret = string.Empty },
Email = account.Email,
ScreeName = account.Email,
ScheduledStatusNotPosted = faceBook.GetScheduledStatusUpdates(),
FacebookUserId = account.UserId
});
}
}
return facebookAccountList;
}
public FacebookAccount Get(string userId, long facebookUserId)
{
using (DataContext dc = new DataContext())
{
var facebookAccount = dc.FacebookAccounts.FirstOrDefault(x => x.UserId == userId && x.UserId == facebookUserId);
if (facebookAccount != null)
{
Facebook = new Facebook(facebookAccount.UserId, facebookAccount.UserId);
return new FacebookAccount()
{
AccessToken = new AccessToken() { Token = facebookAccount.Token, TokenSecret = string.Empty},
Email = facebookAccount.Email,
ScreeName = facebookAccount.Email,
ScheduledStatusNotPosted = Facebook.GetScheduledStatusUpdates(),
FacebookUserId = facebookAccount.UserId
};
}
}
return null;
}
}