Это вопрос новичка, и он может быть очень легким для большинства из вас.
Я пытаюсь найти правильную архитектуру / структуру для проекта тематического исследования (скажем, пример проекта строительства здания).
Я пытаюсь определить команду для проекта, которая идентична на всех этапах проекта и ссылается на нее, а на ее членов ссылаются и используют на разных этапах.
Я создал Person
класс, который определяет обязательные поля и использовал его в моем ProjectTeam
классе, который является общим List<Person>
.
Я хочу знать, как использовать этот класс ProjectTeam
в других классах, которые будут определять фазы в моем проекте? Я думаю о статическом классе, но я не знаю, как его использовать (p1.png).
Должен ли я следовать концепции одного проекта с разными классами, илиЛучше следовать концепции одного решения с библиотекой классов, используемой в разных проектах (представляющих разные фазы) в моем решении. Я графически показал вторую идею на диаграмме not-a-UML (p2.png).
Мои классы:
Схема архитектуры решения:
namespace MyClassLibrary
{ public class Person
{ public enum ERole { Admin, Head, InCharge }
public string Name { get; set; }
public ERole Role;
private decimal rate = 15.00m;
public decimal Rate
{ get { return rate; }
set{ if (rate >= 15.00m) { rate = value; } }
}
public Person()
{
this.Name = "";
this.Role = ERole.InCharge;
this.Rate = 15.00m;
}
}
}
namespace MyClassLibrary
{
public static class ProjectTeam
{
public static List<Person> TeamMembers = new List<Person>();
static ProjectTeam()
{
TeamMembers.Add(new Person() { Name = "APerson",
Role = Person.ERole.Admin,
Rate = 30.00m });
TeamMembers.Add(new Person() { Name = "BPerson",
Role = Person.ERole.Head,
Rate = 25.00m });
TeamMembers.Add(new Person() { Name = "CPerson",
Role = Person.ERole.InCharge,
Rate = 15.00m });
}
}
}
namespace MyClassLibrary
{
public class Project
{
public string ProjectName { get; set; }
public int ProjectNumber{ get; set; }
public string ProjectScope { get; set; }
}
}