|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1. На объявленное свойство ты можешь повесить сеттер, который будет что-то ДЕЛАТЬ при изменении значения, и геттер, который будет отдавать значение в удобном для спрашивающего виде (который может не совпадать с внутренним для класса форматом хранения — например, отдавать ID класса а не ссылку на экземпляр).
2. Объявленное свойство "само" контролирует Тип значения (ты получишь ошибку еще при попытке компиляции). Важный момент также, что тип значения точно известен там, где его будут запрашивать.
Все это называется Strongly-типизацией, в отличие от того что у тебя разрастается сейчас — Stringly-типизации. Тут хорошо бы знать меру. Одно дело айдишники предметов, позволяющие не создавать миллионы экземпляров предметов в памяти а оперировать короткими строками или числами до того момента, когда понадобится реальный экземпляр (а при умелой архитектуре он вообще будет нужен только во Вью — это то, о чем говорит Tails, реляционная БД, когда нет никаких экземпляров, а только данные в таблицах. Ну, типа есть айди вещи, и по этому айди ты можешь узнать ее название, тип, вес, резисты, цену и тп ИЗ ТАБЛИЦ, хранящих эти сведения по айди, а не из создаваемого "физически" экземпляра. Просто потому, что эта вещь не имеет ПОВЕДЕНИЯ, а только параметры и картинку, ей вообще не нужен Класс как таковой. Это как диалоги, ок? Просто упорядоченные по идентификаторам данные. Но совсем другое дело, когда ты начинаешь оперировать строковыми константами для обращения к "реальным" свойствам и даже методам настоящих живых классов, обеспечивающих то самое поведение над данными.
Извини, что я не всегда отвечаю на конкретные вопросы, а пишу длинные портянки абстрактных рассуждений. Иногда это от лени, бывает, но иногда от того, что сам контекст вопроса видится как-то более.. сверху и издалека, что ли.. иногда в таком ключе, что ответить хочется не "делай так а не сяк", а просто "не делай этого".
|