Была предоставлена некоторая полезная информация, но вы упомянули одну вещь, которая может сбить вас с толку:
"Если у меня есть заметки из публичного списка = новые
List () затем такие методы, как ADD,
УДАЛИТЬ стать доступным для Персона
внутри инцидента. "
Все зависит от того, как вы разрабатываете свои классы. Вы должны подумать о том, как эти данные связаны друг с другом. Это поможет вам представить дизайн вашего класса.
Звучит так:
- В одном инциденте может участвовать много людей
- Один человек может создавать множество заметок
- Записка является самым низким уровнем и существует в связи с создаваемым инцидентом и ответственным лицом (лицами), работающими над этим инцидентом.
Инцидент 1 - много человек
Персона 1 - много заметок
Вы можете установить такой тип отношений несколькими способами. Одним из способов может быть фактическое разделение задействованных объектов, а затем создание объединенных объектов.
Например
public class Incident {
//insert incident fields here
//do not add person logic / notes logic
//probably contains only properties
}
public class Person {
//insert person fields
//private members with public properties
//do not embed any other logic
}
public class Comment {
//insert comment private fields
//add public properties
//follow the law of demeter
}
Эти классы не предоставляют друг другу подробности, они просто хранилища для хранения этой информации. Затем вы связываете эти классы друг с другом, например
public class IncidentPersonnel {
List<Person> p;
//add methods to add a person to an incident
//add methods to remove a person from an incident
....
}
Тогда у вас может быть другой класс, обрабатывающий комментарии персоналом
public class PersonnelNotes {
List<Note> n;
//other methods...
}
Вы можете пойти дальше с этим, но это может усложнить ситуацию, но я просто даю вам другое представление о том, как справиться с этим.
Попробуйте следовать закону деметры для функций
Инкапсулируйте все ваши объекты, кроме того, ваш сосед может разговаривать с вами, но не с чем-то еще ... Это поможет вам слабо связать ваши классы и сделает процесс мышления для вас немного проще.
Наконец, вы упомянули, как должны работать операции CRUD. Все это восходит к вашему DAL (уровень доступа к данным). Вместо того, чтобы возвращать строки данных из таблицы, вы могли бы затем возвратить ссылочный объект со всеми его атрибутами. Добавляйте и удаляйте работу одинаково (передавая или удаляя объект). Вы можете использовать ORM или написать свой собственный DAL. Все зависит от того, насколько вы хотите вовлечь себя:).