|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.04.2010, 23:48 | #11 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Это всего лишь вопрос формулировки. Такие отношения можно реализовать на любом языке, яркий пример - Java. Там нет h/cpp файлов. И как по-твоему различать интерфейс и реализацию класса?
Дело в том, что ты сразу же привязал задачу к языку - но язык это всего лишь средство. Здесь же вопрос стоит о дизайне иерархии и отношений между сущностями. |
04.04.2010, 23:57 | #12 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2MaTBeu
здесь стоит вопрос, как это лучше сделать на с++ (во всяком случае судя коду). Цитата:
... } class A implements I { ... } наверное так
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
05.04.2010, 00:15 | #13 | |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
А зачем делать интерфейс на один класс? Интерфейс призван унифицировать доступ ко всем классам, которые его реализуют. Проинвертировать зависимость между уровнями. В нашем случае, ни о каких интерфейсах речь не идет. Поэтому смысла писать интерфейс, чтобы реализовать его в одном классе я не вижу.
Цитата:
ПыСы: черт, если мне придется еще раз объяснять различие между проектированием и написанием кода, я повешусь. |
|
05.04.2010, 00:35 | #14 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2MaTBeu
Цитата:
мне ничего объяснять не надо. человек ясно дал понять, что решение требуется на плюсах. вот я и рассматриваю решение на плюсах. поэтому и проектирование я прикручиваю к написанию. пс. не во всех ооп языках кстать есть возможность объявления вложенных классов
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
05.04.2010, 08:54 | #15 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
c#? Ваше сообщение слишком короткое. Оно должно быть не менее 10 символов.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
05.04.2010, 09:59 | #16 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Оба варианта имеют право на жизнь. Первый явно показывает, что рука может быть только у человека и интерфейс класса (в данном случае имеется ввиду не interface, а public часть класса, которая так же называется интерфейсом) не предполагает использование этих самых рук.
Второй вариант лучше подходит для последующего развития. Если вдруг еще какие-то существа с руками появятся В целом ООП такая штука, что классы и методы можно проектировать как угодно. Главное - чтобы вся система была выстроена в одном стиле, а деление на классы и их расположение - это уже дело субъективное и зависит от многих факторов. Проанализируйте варианты использования своего класса "человек" и решение само найдётся. Вдруг всплывёт задача, при которой руку лучше наружу отдавать пользователю класса и в варианте с вложенным классом придется цеплять костыли. Так что не зная что это за классы и какие функции они выполняют, я бы не стал выделять из этих двух вариантов лучший. Может тут и классы эти вовсе не нужны. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ООП как лучше, и почему так. | optimist32 | Общие вопросы C/C++ | 6 | 15.11.2009 04:43 |
Паскаль ООП. Примеры программ с использованием ООП | SeЯgey | Помощь студентам | 5 | 13.05.2009 21:55 |
в какой универ поступить | L1NK. | Помощь студентам | 3 | 20.08.2008 20:42 |