Sto scrivendo un programma CAD. Diciamo che ho in input class, questa classe legge vari dati da un file di testo e crea un sacco di liste / dizionari e .... Questi dati devono essere accessibili con altri metodi in altre classi da modificare. Ora ecco come l'ho fatto finora:
Ho una classe statica: Building.cs
Quando creo o carico un progetto questa classe contiene tutti i dati come l'elenco di colonne, raggi, punti, ecc. Tutti questi sono memorizzati come campi privati. Posso accedervi usando i metodi pubblici della classe come GetColumns o GetPoints ...
Ora ho anche classi non statiche. Contengono 2-3 metodi pubblici. e fare alcune cose su varie parti dell'edificio.
public static class Building
{
private static List<Column> columns;
private static List<Beams> beams;
private static List<Points> points;
public static List<Column> GetColumns()
{
return Columns;
}
}
public class ColumnsService()
{
private List<Columns> columns;
public GroupColumns(List<Columns> columns)
{
this.columns = columns;
}
public void Group()
{
// group columns
}
}
var columns = Building.GetColumns();
var columnsService = new ColumnsService(columns);
columnsService.Group();
Mi stavo chiedendo è questa la strada da percorrere? In quale altro modo posso memorizzare i dati. I dati devono essere accessibili per tutta la durata del programma alla maggior parte delle classi.