|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.11.2010, 13:43 | #1 |
Новичок
Джуниор
Регистрация: 16.11.2010
Сообщений: 5
|
ООП. Как лучше реализовать?
Здравствуйте всем.
Собственно сабж: Есть встроенная структура Код:
в классе есть метод, так вот вопрос: Как лучше организовать метод: Код:
Код:
Последний раз редактировалось Stilet; 16.11.2010 в 13:58. |
16.11.2010, 13:59 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Перегрузи эту функцию. Пусть дает возможность и так и так делать.
I'm learning to live...
|
16.11.2010, 14:08 | #3 |
Новичок
Джуниор
Регистрация: 16.11.2010
Сообщений: 5
|
Сори что код не поставил(
Так зачем мне две функции с одинаковым функционалом? Мне кажется, что логичней передавть именно целиком объект, а не конкретные поля, чтобы избежать ошибок при вызове метода, поскольку, можно же и ошибиться в передаваемых полях. Я вот только не знаю, как это на производительности скажется? |
16.11.2010, 14:13 | #4 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Так удобней. Незачем если Вы будете пользовать код только сами и никто другой. Но тогда данный вопрос не должен возникать впринципе.
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
||
16.11.2010, 14:27 | #5 | ||
Новичок
Джуниор
Регистрация: 16.11.2010
Сообщений: 5
|
Цитата:
Допустим, у Вас есть, объект куб, обладающий свойствами длина, ширина, высота, цвет, плотность, материал, и т.д. , но Вам нужно посчитать его объем. В этом случае можно передать в метод, сам объект, а можно только нужные для вычисления длину, ширину и высоту. В коде понятней будет, или так Код:
Код:
Цитата:
|
||
16.11.2010, 14:34 | #6 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
И еще раз - куб не должен вычислять объем другого куба. Это кубам не свойственно. Этим должен заниматься кто-то другой, тогда и вероятность ошибки также снизится..
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 16.11.2010 в 14:37. |
||
16.11.2010, 15:03 | #7 | |
Новичок
Джуниор
Регистрация: 16.11.2010
Сообщений: 5
|
Цитата:
Самый подходящий пример в первом посте. Если не брать в расчет перегрузку, то какой бы Вы из двух методов (первого поста) выбрали. Я имел ввиду, что, объект, определенные поля которого мы передаем в функцию (что она с ним делает нас не касается), лучше передать целиком и пусть код внутри функции разбирается что с ним делать, а не передавать только нужные поля. Хотя, я уже запутался |
|
16.11.2010, 15:12 | #8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
В твоем случае я бы оформил кубы отдельным юнитом (или как там для С++) Ввел бы дополнительный класс, например геометр, или правильней стереометр, который бы и занимался вычислением объемов кубов, шаров и т.д. То есть перегрузка была бы по объектам класса. Для твоего примера первый вариант. Если же оставлять все как есть у тебя, то оба варианта.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
16.11.2010, 15:19 | #9 | |
Новичок
Джуниор
Регистрация: 16.11.2010
Сообщений: 5
|
Цитата:
Забудь кубы) Я про самый первый пост. |
|
16.11.2010, 15:32 | #10 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Оба варианта. Серьезно, мне так удобней.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ООП. Как лучше поступить? | Kn793 | Свободное общение | 15 | 05.04.2010 09:59 |
ООП как лучше, и почему так. | optimist32 | Общие вопросы C/C++ | 6 | 15.11.2009 04:43 |
Паскаль ООП. Примеры программ с использованием ООП | SeЯgey | Помощь студентам | 5 | 13.05.2009 21:55 |