Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что правильней передавать в функцию как параметр - много или мало?

7.0K
24 апреля 2009 года
pink master
79 / / 21.10.2006
Есть класс А, который имеет довольно много свойств. Есть функция которая использует как аргумент часть обьекта класса А. К примеру Прямоугольник ограничивающий этот обьект. Что лучше передавать функции: обьект класса А или только прямоугольник?
А то я уже несколько раз менял сигнатуру, может есть какие правила хорошего тона?
87
24 апреля 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: pink master
Что лучше передавать функции: обьект класса А или только прямоугольник?



Лучше передавать объект Прямоугольник. Угадал?

3
24 апреля 2009 года
Green
4.8K / / 20.01.2000
Если требуется передавать какую-то часть класса, который "имеет довольно много свойств", значит, скорее всего, что неправильно спроектирован класс.
К примеру, мне не понятно, как "прямоугольник ограничивающий этот обьект" может являться частью этого объекта. Кстати, этот прямоугольник - это одно "свойство" (поле) твоего сложного класса или несколько (x, y, z) ?
7.0K
24 апреля 2009 года
pink master
79 / / 21.10.2006
Цитата: Kogrom
Лучше передавать объект Прямоугольник. Угадал?



если б я еще сам знал^^ Если передавать треугольник то можно повторно использовать функцию для других прямоугольников. Это хорошо. Но из-за этого нельзя будет расширить ее потом используя другие свойства класса А=(

7.0K
24 апреля 2009 года
pink master
79 / / 21.10.2006
Цитата: Green
Если требуется передавать какую-то часть класса, который "имеет довольно много свойств", значит, скорее всего, что неправильно спроектирован класс.
К примеру, мне не понятно, как "прямоугольник ограничивающий этот обьект" может являться частью этого объекта. Кстати, этот прямоугольник - это одно "свойство" (поле) твоего сложного класса или несколько (x, y, z) ?


Вобще то что Прямоугольник является частью класса лично мне кажется вполне логичным: каждый обьект сам знает свои координаты, так почти в любой графической библиотеке сделанно.
А про то что класс спроектирован неправильно похоже на истину - так как я б с удовольствием передавал в функцию базовый класс всего, что вобще имеет смысл передавать в нее. Но мне приходится использовать одну функцию для многих ни родственных классов...=( Может есть какой прием хитрый, что б это исправить?

3
24 апреля 2009 года
Green
4.8K / / 20.01.2000
Цитата: pink master
Вобще то что Прямоугольник является частью класса лично мне кажется вполне логичным: каждый обьект сам знает свои координаты, так почти в любой графической библиотеке сделанно.


Так значит мы имеем дело с графическим объектом?

Цитата: pink master

А про то что класс спроектирован неправильно похоже на истину - так как я б с удовольствием передавал в функцию базовый класс всего, что вобще имеет смысл передавать в нее.
Но мне приходится использовать одну функцию для многих ни родственных классов...=(


Ну ты же только что сам сказал, что все классы имеют как минимум одну родственную черту - они представляют графические объекты.

Цитата: pink master

Может есть какой прием хитрый, что б это исправить?


Этот хитрый, магический способ называется - интерфейсы.
Есть и другой более магический способ, но он тебе пока не нужен.

87
25 апреля 2009 года
Kogrom
2.7K / / 02.02.2008
Вопрос слишком абстрактный, автор думает об одном, отвечающие о другом - контексты разные. Лучше всего выложить код или описание конкретной задачи. Код можно пытаться преобразовать, задачу решить в виде диаграммы, как в этом сообщении:

http://forum.codenet.ru/showpost.php?p=273310&postcount=11

Иначе мы будем говорить непонятно о чем.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог