Так что мне было интересно, есть ли хороший пример или направление, на которое я могу обратить внимание, чтобы правильно создать класс управления проектом.
Это только ответственность за сохранение и загрузку файлов, связанных с проектом. Это довольно распространенная функция во многих приложениях, поэтому я абсолютно уверен, что подходы к ней должны быть хорошими.
Я использую MVVM в своем проекте, и весь мой код разделен на несколько моделей представления.
Поскольку функция сохранения / загрузки должна иметь доступ к любому содержимому любой viewModel, я не могу просто передать класс менеджера проекта в качестве аргумента (единственный способ сделать это - сделать viewModel sorta глобальной переменной в классе представления (потому что мне нужно установите его в dataContext и передайте менеджер через метод открытого сеттера).
Так что другой вариант, который у меня был, - это сделать синглтон, но, тем не менее, он имеет плохую репутацию, и я не хочу его использовать.
Я не уверен, действительно ли здесь нужен код, но вот примерно то, что у меня сейчас есть:
public class ProjectManagerSingleton {
public static ProjectManagerSingleton Instance = new ProjectManagerSingleton();
public string ProjectName { get; set; }
public string ProjectPath { get; set; }
private ProjectManagerSingleton() { }
public void SaveProject() {
// some code here
}
public void LoadProject {
// some code here
}
}
К сожалению, я не нашел ни одного хорошего примера, который мог бы использовать, чтобы сделать это самостоятельно.