У меня есть класс под названием LetterRect с двумя полями типа LetterSquare. Например:C# объект состав
public class LetterRect : Microsoft.Xna.Framework.GameComponent
{
private LetterSquare square1;
private LetterSquare square2;
private long indentificationNumber;
... other fields that are irrelevant to this question
}
Я хочу, чтобы иметь возможность получить ссылку на объект LetterRect через Square1 и square2. Мое первоначальное решение состояло в том, чтобы дать LetterRect и соответствующему квадрату 1 и квадрату2 тот же идентификационный номер с длинным целым числом. Однако есть ли способ доступа к LetterRect без идентификационного номера? Определенно нет отношения наследования, это композиция или отношения «есть-а». Если я правильно помню в Java, то есть понятие внутреннего класса, где внутренний класс может напрямую ссылаться на экземпляр класса, членом которого он является. Итак, есть ли лучший способ получить ссылку на объект LetterRect через square1 и square2?
Спасибо за помощь!
Не могли бы вы просто добавить аргумент LetterRect в свой конструктор LetterSquare и передать его при инициализации квадратных объектов? Или используйте DependencyInjection, если хотите. –
Как правило, неплохой дизайн для передачи родительского объекта ребенку. если ребенку требуется что-то от родителя (например, в каком-либо поле) передать именно эту конкретную информацию ребенку. Если у вас есть проблемы с этим, вы можете предоставить нам подробную информацию, чтобы мы могли вам помочь. – Servy