| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Системный анализ, проектирование и UML > Наследовать или нет. |
| Автор: a11en 20.12.2008, 22:45 |
| Столкнулся с проблемой при программировании генетического алгоритма, имеются 3 класса хромосома, особь, популяция. И так как опыта очень мало не могу понять стоит ли наследовать один класс от другого, если особь, по сути набор(массив) хромосом, а популяция массив особей. Заранее благодарен, если ошибся с разделом, то не пинайте, но по-моему в нужный раздел написал. |
| Автор: nmn 21.12.2008, 01:40 |
| наследование не надо, а то получится как у франкенштейна особь это не хромосома, а набор их, то же самое с популяцией, это не особь и тем более не хромосома мое имхо |
| Автор: a11en 21.12.2008, 09:59 |
| да, спасибо, я как раз дошел до этого... что-то ночью туго думалось |
| Автор: maxim1000 21.12.2008, 11:31 |
| немного более общие рекомендации 1. если есть сомнения, то, скорее всего, наследовать не нужно 2. наследовать нужно только если есть понимание, как это будет использоваться в программе, просто так наследовать не стоит Добавлено через 1 минуту и 44 секунды ну и, конечно, же семантика наследования: 3. наследовать стоит только если любой объект класса A является также объектом класса B (A наследуется от B) |
| Автор: ida 9.1.2009, 16:09 |
| a11en, по-моему это композиция. Даже агрегация. Но как уже сказали выше, все зависит от того, каким образом это будет использоваться. На уровне предметной области это агрегация, а не наследование. Наследованием для вашего примеры было бы: Родительский класс - Хромосома. Дочерние - X-хромосома, Y-хромосома. Родительский класс - Особь человека. Дочерние: мужчина, женщина. Это пример, просто чтобы объяснить разницу между наследованием и композицией(агрегацией). |