Должен ли я использовать статический в следующих 2-х случаях:Должен ли я использовать статический метод (C#)
Случай 1)
public class RequestHeader
{
private string Username { get; set; }
private string Password { get; set; }
private string AccessKey { get; set; }
public string url { get; set; }
public string pageid { get; set; }
public string organizationid { get; set; }
private RequestHeader()
{
}
public static RequestHeader GetRequestHeader(string url, string pageid, string organizationid)
{
return new RequestHeader()
{
Username = "Some logic to fetch username",
Password = "Some logic to fetch password",
AccessKey = "Some access key",
url = url,
pageid = pageid,
organizationid = organizationid,
};
}
}
Случай 2)
public class HttpClientHelper
{
public static HttpClient GetHttpClient(RequestHeader header)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
foreach (var property in header.GetType().GetProperties())
{
client.DefaultRequestHeaders.Add(property.Name, property.GetValue(header).ToString());
}
return client;
}
}
Я знаю, что статика не используется, когда состояние поддерживается. Я считаю, что здесь я не поддерживаю никакого состояния. Я буду использовать это в библиотеке классов, и я буду использовать их для вызова службы отдыха.
Единственное, что заставляет меня хотеть использовать static здесь, это не инициализировать этот класс (я знаю, что это очень опасная причина).
Пожалуйста, дайте мне знать ваши мысли. Есть что-то, чего я не вижу в этом.
Примечание: 1) Я знаю небольшой корпус для некоторых свойств. Он синхронизируется с сервисом отдыха, на котором я абсолютно не контролирую. 2) Если в будущем у меня будет несколько RequestHeader, я могу создать IRequestHeader, у которого есть метод GetRequestHeader. Таким образом, различные RequestHeaders будут реализовывать это. В этом случае я знаю, что не могу хранить статический метод в интерфейсе. Пожалуйста, держите эти 2 условия и сообщите мне свои мысли.
Это может быть лучше на http://codereview.stackexchange.com. Это не очень подходит для переполнения стека, поскольку это не проблема программного обеспечения или IDE. –
В любом случае я могу поместить это в stackexchange. Или мне нужно создать там новый пост. – sam113
Держитесь, прежде чем перемещать его в любом месте. Я не думаю, что это действительно * вне темы * для переполнения стека, поэтому я не вижу причин для его перемещения. –