Я новичок в процессе проектирования OO, поэтому, пожалуйста, несите меня....
У меня есть два объекта, которые мне нужно моделировать как классы, называть их "Родительский и дочерний" (он достаточно близко к фактическому проблемному домену). У одного родителя будет один или несколько детей - я не заинтересован в этом заявлении в бездетных родителях.
Где мой мозг выходит на обед, это факт, что мне нужно найти друг друга. В моей базе данных я могу реализовать это с нормальным отношением внешних ключей, а основанный на наборах характер SQL позволяет легко найти всех детей для данного родителя или родителя для данного ребенка. Но как объекты...?
Я думаю, что Родитель должен нести коллекцию (список, что угодно) детей. Я также считаю, что каждый ребенок должен иметь ссылку на своего Родитель. Круговой характер ссылок, однако, заставляет мою голову болеть.
Am I:
- На правильном пути?
- Полностью от основания? Если да, что мне делать по-другому?
Это почти наверняка будет реализовано в VB.NET, но я пока еще не умею вырезать код.
Изменить после 8 ответов:
Спасибо всем. Было трудно выбрать только один ответ, чтобы принять.
Чтобы прояснить пару вопросов, которые были заданы в ответах:
- Родитель и ребенок очень разные объекты - там нет наследования отношения вообще. Я выбрал имена, которые я сделал, потому что они действительно очень близко к реальному миру и теперь видим, что это источник замешательства от OO перспектива.
- Иерархия только на один уровень - у детей никогда не будет детей в приложении.
Еще раз спасибо.