Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.05.2011, 18:15
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 1  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
По умолчанию Xорошо ли передавать в конструктор класса в качестве параметра this

Возник спор, хорошо ли передавать в конструктор класса в качестве параметра this . Как альтернатива - передача нескольких пакаметров. Или это все равно как, или обусловленно какими-то причинами?

Старый 06.05.2011, 18:37
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вполне нормальная практика. Это же просто ссылка на сам объект, в котором происходит инстанцирование другого объекта. Если конструктор этого "другого" объекта принимает ссылки на объекты, имеющие тип как у this, то почему бы не передать this параметром.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 06.05.2011, 19:31
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 3  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Что делает коллега, упрощенная схема:
Код AS1/AS2:
viewport = new Viewport(this);
public function setModus() {
	.............		
}
Код AS1/AS2:
public function Viewport(main:GlavniiClass):void {			
	this.main = main;
	main.setModus();	
}
По-моему, это нехорошо.

Старый 06.05.2011, 19:37
CROL вне форума Посмотреть профиль Отправить личное сообщение для CROL Найти все сообщения от CROL
  № 4  
Ответить с цитированием
CROL
 
Аватар для CROL

Регистрация: Dec 2007
Сообщений: 102
непонятно что нехорошего то? this это такая же ссылка на объект как и все другие

Старый 06.05.2011, 19:54
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 5  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Цитата:
GlavniiClass
=D
Вот это точно нехорошо.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 06.05.2011, 20:19
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Ну и
Код AS3:
main.setModus();
тоже не очень. Сильная связность получается. Хотя я не скажу что так вообще никогда нельзя делать. Могут быть исключения - просто на этот шаг надо идти осознано.
А передавать ли this в конструктор, даже не имеет смысла обсуждать - можно.
__________________
Отряд Котовскага

Старый 06.05.2011, 20:40
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 7  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Цитата:
Сообщение от Котяра Посмотреть сообщение
Ну и
Код AS3:
main.setModus();
тоже не очень. Сильная связность получается. Хотя я не скажу что так вообще никогда нельзя делать. Могут быть исключения - просто на этот шаг надо идти осознано.
Из-за этого-то и возник спор.

Старый 06.05.2011, 21:09
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Nemez Посмотреть сообщение
Что делает коллега, упрощенная схема:
Код AS1/AS2:
public function Viewport(main:GlavniiClass):void {			
	this.main = main;
	main.setModus();	
}
По-моему, это нехорошо.
Это очень нехорошо!! Постарайтесь указывать аргументы (параметры передаем, аргументы принимаем!) в конструкторе как интерфейсы или как нативный тип классов флеш-плеера. Иначе образуется зависимость класса Viewport от указанного типа (GlavniiClass) и никакой другой тип, не считая унаследованных от GlavniiClass, Вы туда не передадите. А мы же стремимся сделать класс многоразовым (code reuse)? Если да, то прислушайтесь.

Добавлено через 1 минуту
Ну, если осознанно, то не вопрос.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 06.05.2011 в 21:32. Причина: й
Старый 06.05.2011, 21:12
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 9  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Что делает коллега, упрощенная схема
Передача ссылки на объект как параметр - совершенно нормально.
Не суть, конструктор или какой другой метод.

А вот вызов методов друг друга таким образом как в примере - это, конечно, жуть. Честно говоря, я не могу себе представить ситуации, когда один объект создает другой и разрешает ему себя напрямую дергать...

Старый 06.05.2011, 21:21
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Честно говоря, я не могу себе представить ситуации, когда один объект создает другой и разрешает ему себя напрямую дергать...
Я часто так делаю. Не вижу ничего дурного.
Допустим есть какой-то большой интерфейс, структуру которого я четко представляю и который не требует особой гибкости. Нужно раскидать все по разным классам для упрощения кода. Вот в такой ситуации я чаще спользую подобные конструкции, чем события.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.