![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
Лучше использовать класс с переменными или класс с одним объектом у которого много переменных?
|
|
|||||
|
[+1 22.07.14]
[+4 12.08.14] [+1 09.02.15] Регистрация: May 2014
Сообщений: 182
|
Второй способ медленнее.
Добавлено через 2 минуты Ваш вопрос на самом деле философский. В ООП второй вариант предпочтительней, так-как это композиция. Добавлено через 3 минуты Но отталкиваться нужно от чего-то реального. Если так делать всегда, то будет выглядеть смешно. |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
То есть можно и так и так делать?
|
|
|||||
|
[+1 22.07.14]
[+4 12.08.14] [+1 09.02.15] Регистрация: May 2014
Сообщений: 182
|
Но в ООП она предпочтительней наследству.. А если вопрос не стоит между выбором, то лучше класс с переменными.
Добавлено через 1 минуту Цитата:
Но лучше приведите маленький пример. |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
или
|
|
|||||
|
[+1 22.07.14]
[+4 12.08.14] [+1 09.02.15] Регистрация: May 2014
Сообщений: 182
|
Это вообще два разных варианта. В первым, после создания экземпляра Enemy, Вы сможете получить доступ к его public свойствам. А во втором Вы не можете обратится к свойству enemy, так-как оно локально и после выполнения метода init удалится из памяти.
Но именно в этом случае, первый вариант лучше. Чистый Object чаще используют только в том случаи, если он получился путем преобразования xml или json. Ну или ещё, как ассоциативный массив. Добавлено через 2 минуты Object является динамическим объектом, а в as3 к свойствам и методам динамических объектов, доступ в ... Вроде в полтора раза медленнее. |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
Во втором варианте они у меня в массив добавляются, т.е. я могу через него обратиться.
Спасибо за ответ. |
|
|||||
|
[+1 22.07.14]
[+4 12.08.14] [+1 09.02.15] Регистрация: May 2014
Сообщений: 182
|
Если Вам нужно только хранилище каких-то настроек, то Вы можете создать Специальный класс с типизированными свойствами и скорость тогда будет выше. Например -
public class EnemyData { public var life:int = 100; public var name:String = 'defaultName'; } |
|
|||||
|
Цитата:
Мне кажется тут нужно смотреть на то, что в случае с Object мы зададим свойство speed, а искать будем sped. В итоге получим undefined. А с типизированными свойством у нас будет предупреждение на этапе компиляции. |
|
|||||
|
Цитата:
Цитата:
Возможно вас удивит, но в as3 даже Class, является наследником Object. Вот такая конструкция Выдаст true. И вообще, в этом языке даже нет примитивов. Здесь всё является наследником Object. Короче говоря, ваш вопрос лучше перефразировать примерно так: Как лучше делать, объявлять для каждого свойства отдельную переменную класса, или хранить все свойства в динамической коллекции? Лучшего варианта здесь нет. Все зависит от конкретной задачи. Если точно известно какие свойства будут, что ничего нового добавляться не будет (имеется в виду динамически), или данные не будут обновляться сразу всем скопом, то лучше первый вариант. Тут и доступ к свойствам быстрее, и IDE подсказки по коду выдаст. Но и вариант с коллекцией свойств тоже не плохой. Есть варианты, когда он удобнее. Так что точного ответа здесь не найти
__________________
Ко мне можно и нужно обращаться на ты) |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:53. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|