|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.04.2010, 21:01 | #1 |
Форумчанин
Регистрация: 20.06.2008
Сообщений: 125
|
ООП. Как лучше поступить?
Допустим у нас есть класс (например рука) и второй класс, который содержит первый(например человек), причем если у нас будет объект класса Человек, то нам никогда не понадобится напрямую управлять его рукой.
Как лучше поступить в такой ситуации: Код:
Код:
|
04.04.2010, 21:10 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я бы поступил вторым образом, мало ли рука пригодится еще
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.04.2010, 21:20 | #3 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Второй это верный способ, а первый это выкрутасы не нужные.
|
04.04.2010, 22:31 | #4 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
ну конкретно в этом контексте я бы выбрал второй способ. но я сталкивался и с первым (писал модель для отображения данных, вот там были классы, существование которых невозможно без основного)
пс. я то думал ты приведешь примеры агрегации и множественного наследования
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 |
04.04.2010, 23:08 | #5 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Можно и первым. Но только в том случае, если вы точно на 100% знаете, что вам не нужно напрямую управлять рукой извне, или прилеплять руки куда-то еще.
В таком случае это будет нормальное сокрытие реализации. ПыСы: хоть эти два случая, принципиально ничем не отличаются, первый дает надежность дизайна, а второй - нет. ПыПыСы: Код:
Код:
Код:
Последний раз редактировалось MaTBeu; 04.04.2010 в 23:10. |
04.04.2010, 23:13 | #6 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
Я бы вообще разнес по отдельным файлам
|
04.04.2010, 23:15 | #7 | |
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 |
|
04.04.2010, 23:15 | #8 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Цитата:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
04.04.2010, 23:28 | #9 | |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
В данном случае стоит рассматривать объект "Рука", как часть реализации объекта "Человек". Ни о каких интерфейсах здесь речь не идет. Это дизайн, а не кодирование. Реализацию можно и в h-файле писать. Для шаблонов это является обязательным условием.
Цитата:
Последний раз редактировалось MaTBeu; 04.04.2010 в 23:31. |
|
04.04.2010, 23:39 | #10 | |
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 |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ООП как лучше, и почему так. | optimist32 | Общие вопросы C/C++ | 6 | 15.11.2009 04:43 |
Паскаль ООП. Примеры программ с использованием ООП | SeЯgey | Помощь студентам | 5 | 13.05.2009 21:55 |
в какой универ поступить | L1NK. | Помощь студентам | 3 | 20.08.2008 20:42 |