|
|
|
Как создать множество подклассов с внутренними параметрами ?
|
|||
|---|---|---|---|
|
#18+
Пишу простенький игровую механику, например есть класс Игрока, игрок может устраиватся там на Предприятия, а на Предприятиях. есть разные Должности (разные на разных) у них есть Инструменты (со своими параметрами). Разбил на 3 класса, Игрок, Предприятия (Должность внутренная) , Инструменты. На процедурном Delphi, я спокойненько это все смогу реализовать через булеан типы, и элементы формы, правда это будет громоздко, очень громоздко. а вот в Java, с ее чистым ООП я немного моск сломал, даже Flash с его AS 3.0, мелочь :) Как создать множество подклассов с внутренними параметрами ? Work.Roles.Param ? (Work.Position.Param) ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Ну или хотябы пните в нужном направлении... (идея - оставить к конструкторе индекс, а в тест.классе уже реализовать добавление в список должностей - не катит - там код подчеркивает, я в недоумении :) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 00:50 |
|
||
|
Как создать множество подклассов с внутренними параметрами ?
|
|||
|---|---|---|---|
|
#18+
Gramdler, Вам бы хоть книжки по Java для начала почитать, иначе весь форум за вас будет писать программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 01:17 |
|
||
|
Как создать множество подклассов с внутренними параметрами ?
|
|||
|---|---|---|---|
|
#18+
smackmychi, Конкретнее, Как создавать класс я умею, как вызывать его тоже, идея с списком понятна, не понтяно как реализовать множество подсклассов внутри класса. чтоб можно было обратится так work.position. - вот тут не понятно ... Если сделать примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. убрать, конструктор; и попробовать создать экземпляр внутреннего класса = в тест.классе = то выдает ошибку IOExeption, правда я не догоняю, куда исключения впихнуть... Или этот подход не правильный? Просто как я понимаю ООП - имея экземпляр класса Work, я создаю в нем н-ое кол. экземляров класса Position or Role, в конечном итоге чтоб получить доступ к онным я должен набрать work.position.param (or work.role.(param or method)). Звучит все четко и понятно, а на деле подводный камень на камне... ЗЫ Книжки не решают подобные задачи - там простое описание классов, подклассов идет, с примерами как их создавать и использовать, но увы не более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 01:46 |
|
||
|
Как создать множество подклассов с внутренними параметрами ?
|
|||
|---|---|---|---|
|
#18+
Я вот подумал очередной раз :) Просто если java то что я выше написал не позволяет ... (о чем я могу только предполагать). Имеет ли смысл идти в обход? Код: java 1. 2. 3. 4. 5. 6. Что еще можно еще лучше опустить Код: java 1. 2. 3. 4. 5. 6. и работать уже с хеш таблицами в обход создания класса, или данная идея имеет в себе еще больше подводных камней? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 09:02 |
|
||
|
Как создать множество подклассов с внутренними параметрами ?
|
|||
|---|---|---|---|
|
#18+
Gramdler, - Это не та ситуация когда есть смысл создавать классы внутри классов. Создавайте обычные классы верхнего уровня для каждой сущности модели предметной области. - Изучайте свойства в Java и обратите внимание на то что свойства являются виртуальными, а поля нет. Поэтому стоит четко осозновать где вы хотите обращаться через поле, а где через свойство. Для новичка рекомендуется ВСЕГДА использовать только свойства. И только когда придет понимание терминов Coupling и Cohesion, можете переходить на использование полей. - Избегайте цепочки вызовов вида Код: java 1. 2. 3. 4. За исключением специальных паттернов. Во-первых это вызывает банально проблему при NPE, когда по исключени. нельзя опраделить что именно в этой цепи был null. Во-вторых это повод задуматься об инкапсуляции и всех тех же Coupling\Cohesion. Почем ваш класс разбираться во внутреннем устройстве структуры Work. Почему бы не использовать work.getPositionParams(), который скроет структуру от остальных классов? - Ознакомьтесь с обще распространенными Java Coding Convention. Иначе ваш код читать нет никакого желания. - Всегда лучше использовать явные классы-сущности Work\Position\Role чем непонятные коллекции строк, понять назначение которых решительно невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 09:42 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2126452]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 468ms |

| 0 / 0 |
