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