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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.06.2009, 20:08
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 41  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Объект - это некая единица твоей модели. Если объект называется "телефонный справочник" - то логично, что в нём ты найдёшь данные об именах и телефонах. К тому же - можно ожидать, что в том же объекте окажутся методы, чтобы найти, отсортировать, добавить, удалить и т.д.

Если же объект называется "Сборник упражнений для утренней зарядки" - то логично, что в нём ты найдёшь методы "прыгать", "бегать", "приседать" и т.д (и ни капли каких-нибудь данных).

Конкретно для твоего случая с мячом и прыжками - обычно делают так, что информация и способы обработки этой информации находятся в одном классе. То есть - мяч и способность мяча прыгать лучше сделать в одном классе, поскольку эти 2 вещи тесно связаны и не нужны отдельно друг без друга. С другой стороны - иногда бывает полезно оставить информацию отдельно в чистом виде. И отдельно реализовать работу с этой информацией. Но почти всегда это актуально только для сложных проектов.

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

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от Stargazer Посмотреть сообщение
Объект - это некая единица твоей модели. Если объект называется "телефонный справочник" - то логично, что в нём ты найдёшь данные об именах и телефонах. К тому же - можно ожидать, что в том же объекте окажутся методы, чтобы найти, отсортировать, добавить, удалить и т.д.

Если же объект называется "Сборник упражнений для утренней зарядки" - то логично, что в нём ты найдёшь методы "прыгать", "бегать", "приседать" и т.д (и ни капли каких-нибудь данных).
Блин, не надо путать людей неудачными примерами.. объект не называется "телефонный справочник", объект называется - конкретный экземпляр "телефонного справочника", а справочник - это класс.


А насчет разделения объектов-классов и объектов-действий... тоже не так все и сложно.
Есть класс Jump (кстати очень близко к нему это обычный Tween)
создавая объект класса Jump - мы в качестве параметра передаем в конструктор объект класса Ball. затем вызываем метод Jump.start, задаем продолжительность, траекторию и.т.п, экземпляр класса - действий меняет свойства таргета ( в данном случае ball) по каким-то собственным законам. обычно цели класса действий реализуют некий интерфейс.. в данном случай этот интерфейс: IJumpable, т.е. быть прыгательноспособным, что выражается, например, в обязательном наличии сеттера координаты y, который вызывает класс Jump.

т.е.
Код AS3:
interface  IJumpable
{
function set y(value:int );
}
...
class Ball implements IJumpable
..
class Jump
 //constructor
public function Jump(target:IJumpable)
//
public function.start()
{
_target.y=50;
}
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 05.06.2009 в 01:07.
Старый 05.06.2009, 12:14
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 43  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
Сообщение от Котяра Посмотреть сообщение
Блин, не надо путать людей неудачными примерами.. объект не называется "телефонный справочник", объект называется - конкретный экземпляр "телефонного справочника", а справочник - это класс.
Вы уверены в своей правоте? Покажите, где вы почерпнули такую уверенность.
А я бы сказал наоборот, что именно имена классов выбираются так, чтобы отражать смысл объекта, который они создают. Кому верить?

То, каким образом я создаю свои объекты и что они фактически собой представляют - это уже вторично, потому что термин "объект" относится к теории программирования и не относится непосредственно к языку. Термин "объект" появился без привязки к термину "класс" и изначально был полностью самостоятельным определением. Главным в термине "объект" является то, что он хранит в себе набор функций и значений, связанных каким-то общим смыслом. И только в классовых языках он стал использоваться как синоним "экземпляр класса".


Теперь конкретно по цитате:

Почему я в своём примере не могу назвать объект "телефонным справочником"? Потому что имя "телефонный справочник" зарезервировано за именем класса из которого я создаю?

А если я создал экземпляр класса Object и в него внёс массив телефонов, массив фамилий и добавил пару функций для работы с ним? От этого телефонный справочник перестал быть телефонным справочником?


Последний раз редактировалось Stargazer; 05.06.2009 в 12:16.
Старый 05.06.2009, 12:27
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 44  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

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


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

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

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


 


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


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