![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
cmygeHm |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
Можно перечитать тысячи книг и наверное никогда до этого не допереть. + стиль программирования у каждого свой.
Вобщем вопрос звучит так: Пусть есть три класса - Class1, Class2 и Class3. Классу Class1 необходимы методы, которые инкапсулирует класс Class2. Тогда мы в коде класса Class1 создаем экзмепляр класса Class2 и юзаем его методы. Но вдруг возникла необходимость у класса Class3 вызвать методы класса Class2. И что??? Создавать еще один экземпляр в коде класса Class3? А если классов ClassN ??? Как правильно быть в такой ситуации??? Как создать экземпляр класса Class2 так, чтобы он был доступен всем и чтобы это было очень граммотно и красиво??? PS.Вообще я учусь/кодю на С++. А сейчас возникла необходимость написать курсовую на Java. Этот вопрос и С++ касается. Всем большое спасибо. ![]() |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Вообще говоря, наиболее правильный ответ - надо заранее проектировать классы так, чтобы ситуация "вдруг" возникнуть не могла. Исправлять что-то в структуре классов, когда часть кода уже написана, неправильно, поэтому любое решение в такой ситуации будет плохим.
|
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 6 Всего: 27 |
Не создавать экземпляр в классе, а передавать его через конструктор или сеттер, руками или IoC контейнером. Это если и в Class1 и Class3 нужен один и тот же экземпляр. Если разные, то почему бы и не создать? -------------------- ![]() |
|||
|
||||
cmygeHm |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
я неправильно выразился немного. ситуация возникла не тогда, когда я написал пол проекта. ситуация стоит сейчас, когда создано всего три класса и они почти пусты. я учусь jav'е. |
|||
|
||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Или, если это какой-то общий класс, который нужен всем, но экземпляр всего один, то сделай его Singleton
|
|||
|
||||
cmygeHm |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
вот как вообще это у меня сейчас обстоит: Класс1:
Класс2:
Класс3:
Добавлено через 2 минуты и 33 секунды Не создавать экземпляр в классе, а передавать его через конструктор или сеттер, руками или IoC контейнером. Или, если это какой-то общий класс, который нужен всем, но экземпляр всего один, то сделай его Singleton Вот эти два момета очень интересуют. Буду читать. А можете еще и подсказать что-нибудь. |
||||||||
|
|||||||||
Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Может я что то не понл... а разве вот так сделать нельзя:
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
cmygeHm |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
Joil, я не волшебник! я только учусь. я пишу курсовую на jav'e. Резкий переход с С++ на java. Вроде все идет хорошо. Но возник этот вопрос.
Кстати вот ответ читаю: http://habrahabr.ru/blogs/complete_code/27108/ Добавлено через 14 минут и 49 секунд и как после вот этого:
создавать экземпляр надо? или что? |
|||
|
||||
cmygeHm |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
конструкто класса теперь невидим, оно и видно -
и что делать? объявляю в классе Class1:
и обращаюсь всегда к cl ??? |
||||
|
|||||
Joil |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
cmygeHm ну вот в классе 1 и 3 сделай вот так допустим:
Это и будет у тебя один объект в 2х классах. --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
||||
|
|||||
AxNe0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 24.4.2006 Где: St. Petersburg Репутация: 4 Всего: 5 |
Собственно, это как раз и называется Singleton ![]() |
|||
|
||||
Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Да, AxNe0, я уже прочитал... хех, знал как делать но как называется незнал...
![]() --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
cmygeHm |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
винград! спасибо!
![]() |
|||
|
||||
cmygeHm |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 3.12.2008 Репутация: нет Всего: -2 |
так что получается? если у меня Класс2 нужен в ста других классах, то
????? ![]() |
|||
|
||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Ну это же лучше, чем
если тебе достаточно одного экземпляра этого класса. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |