Если бы вы сделали то, что упомянули при редактировании, ваши классы пострадали бы, поскольку они стали бы слишком тесно связанными A не должен становиться слишком близким с B, но хорошей идеей может быть разделение класса на другой класс, который может обрабатывать оба экземпляра A и B.
Например, предположим следующее:
Issue->Action Item
Классический пример одного ко многим ...
Вы можете сделать это:
class Issue {
//define issue properties
List<ActionItem> ai;
}
class Action Item {
//define action properties
//methods
}
Но тогда Проблеме, возможно, придется слишком много знать об Предмете Действия.
Лучше всего ввести промежуточное звено:
class IssueActionItems
{
//define props / methods
Issue i;
List<ActionItems> l;
}