![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Объект - это некая единица твоей модели. Если объект называется "телефонный справочник" - то логично, что в нём ты найдёшь данные об именах и телефонах. К тому же - можно ожидать, что в том же объекте окажутся методы, чтобы найти, отсортировать, добавить, удалить и т.д.
Если же объект называется "Сборник упражнений для утренней зарядки" - то логично, что в нём ты найдёшь методы "прыгать", "бегать", "приседать" и т.д (и ни капли каких-нибудь данных). Конкретно для твоего случая с мячом и прыжками - обычно делают так, что информация и способы обработки этой информации находятся в одном классе. То есть - мяч и способность мяча прыгать лучше сделать в одном классе, поскольку эти 2 вещи тесно связаны и не нужны отдельно друг без друга. С другой стороны - иногда бывает полезно оставить информацию отдельно в чистом виде. И отдельно реализовать работу с этой информацией. Но почти всегда это актуально только для сложных проектов. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
А насчет разделения объектов-классов и объектов-действий... тоже не так все и сложно. Есть класс Jump (кстати очень близко к нему это обычный Tween) создавая объект класса Jump - мы в качестве параметра передаем в конструктор объект класса Ball. затем вызываем метод Jump.start, задаем продолжительность, траекторию и.т.п, экземпляр класса - действий меняет свойства таргета ( в данном случае ball) по каким-то собственным законам. обычно цели класса действий реализуют некий интерфейс.. в данном случай этот интерфейс: IJumpable, т.е. быть прыгательноспособным, что выражается, например, в обязательном наличии сеттера координаты y, который вызывает класс Jump. т.е.
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 05.06.2009 в 01:07. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
А я бы сказал наоборот, что именно имена классов выбираются так, чтобы отражать смысл объекта, который они создают. Кому верить? То, каким образом я создаю свои объекты и что они фактически собой представляют - это уже вторично, потому что термин "объект" относится к теории программирования и не относится непосредственно к языку. Термин "объект" появился без привязки к термину "класс" и изначально был полностью самостоятельным определением. Главным в термине "объект" является то, что он хранит в себе набор функций и значений, связанных каким-то общим смыслом. И только в классовых языках он стал использоваться как синоним "экземпляр класса". Теперь конкретно по цитате: Почему я в своём примере не могу назвать объект "телефонным справочником"? Потому что имя "телефонный справочник" зарезервировано за именем класса из которого я создаю? А если я создал экземпляр класса Object и в него внёс массив телефонов, массив фамилий и добавил пару функций для работы с ним? От этого телефонный справочник перестал быть телефонным справочником? Последний раз редактировалось Stargazer; 05.06.2009 в 12:16. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Не надо смешивать динамические объекты и классы.
Я лично считаю использование Object в качестве некоего динамического класса плохой практикой. Единственное (ИМХО) оправданное использование Object - в качестве хэш списков. Либо структуры данных ( хотя лучше всё-же сделать отдельный класс)
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 05.06.2009 в 12:31. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|