У меня есть класс, который возвращает три свойства. Первое свойство зависит от некоторого параметра, второе зависит от первого свойства, а третье - от второго свойства.Как создать мой класс
Каков наилучший способ реализации этого типа класса, существует ли соответствующий шаблон дизайна для этого? Ниже я вставил две версии моего кода, которые работают, и я задаюсь вопросом, кто из них лучше (или я слишком усложняю ситуацию)?
Первый один:
class Initializer
{
private string lastCode;
private int lastPackage;
private int lastBox;
public Initializer(int machineNumber)
{
lastCode = GetLastCodeFromDatabase(machineNumber);
lastPackage = GetLastPackageByLastCode(lastCode);
lastBox = GetLastBoxByLastPackage(lastPackage);
}
public string LastCode
{
get { return lastCode; }
}
public int LastPackage
{
get { return lastPackage; }
}
public int LastBox
{
get { return lastBox; }
}
private string GetLastCodeFromDatabase(int machineNumber)
{
using (InitializerTableAdapter adapterGetLastCode = new InitializerTableAdapter())
{
return Convert.ToString(adapterGetLastCode.GetLastCodeByMachineNumber(machineNumber));
}
}
private int GetLastPackageByLastCode(string lastCode)
{
using (InitializerTableAdapter adapterGetLastPackage = new InitializerTableAdapter())
{
return Convert.ToInt32(adapterGetLastPackage.GetLastPackageByLastCode(lastCode));
}
}
private int GetLastBoxByLastPackage(int lastPackage)
{
using (InitializerTableAdapter adapterGetLastPackage = new InitializerTableAdapter())
{
return Convert.ToInt32(adapterGetLastPackage.GetLastBoxByPackageNumber(lastPackage));
}
}
}
Второе:
class Initializer
{
public static string LastCode(int machineNumber)
{
return GetLastCodeFromDatabase(machineNumber);
}
public static int LastPackage(string lastCode)
{
return GetLastPackageByLastCode(lastCode);
}
public static int LastBox(int lastPackage)
{
return GetLastBoxByLastPackage(lastPackage);
}
private static string GetLastCodeFromDatabase(int machineNumber)
{
using (InitializerTableAdapter adapterGetLastCode = new InitializerTableAdapter())
{
return Convert.ToString(adapterGetLastCode.GetLastCodeByMachineNumber(machineNumber));
}
}
private static int GetLastPackageByLastCode(string lastCode)
{
using (InitializerTableAdapter adapterGetLastPackage = new InitializerTableAdapter())
{
return Convert.ToInt32(adapterGetLastPackage.GetLastPackageByLastCode(lastCode));
}
}
private static int GetLastBoxByLastPackage(int lastPackage)
{
using (InitializerTableAdapter adapterGetLastPackage = new InitializerTableAdapter())
{
return Convert.ToInt32(adapterGetLastPackage.GetLastBoxByPackageNumber(lastPackage));
}
}
}
С помощью этого класса я настроил GUI моего приложения при запуске, поэтому он будет запускаться только один раз, и мне нужно сразу получить все свойства. – sventevit