|
|
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
Доброго дня) А потом мы его типа используем в методе get класса.. return new MyClass() что это даёт?? Как правильно метод get должен публичным и/или статичным?? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 12:14:05 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
например так тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 12:44:16 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
еще его всякие отцы рекомендуют использовать в утильных классах. Ну в тех, которые состоят только из утильных статических методов. Это сделано для того, чтобы нельзя было создать ненужный инстанс класса. Еще, такой класс желательно сделать final, чтобы от него не могли отнаследоваться... Защита от идиотов... Ну и еще, если это вложеный паблик класс с приватным конструктором, чтобы можно было инстансы делать только внутри класса, где находится этот вложеный класс, а использовать этот инстанс можно бы было снаружи. Это очень удобно, если пишется какая-то объектная обертка над структурами данных... Вообще можно полно всяких придумать способов использования... кстати NewJaver А потом мы его типа используем в методе get класса.. return new MyClass() что это даёт?? если так как ты написал, то абсолютно ничего с функциональной точки зрения... разве что код дебильный это дает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 13:31:52 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
fixxerнапример так тынц Спасибо за статью только я хотел уточнить по возможности ... там указывается : public class MySingleton { private static final MySingleton INSTANCE = new MySingleton(); private MySingleton() { } public static final MySingleton getInstance() { return INSTANCE; } } Статический метод getInstance() возвращает единственный экземпляр данного класса. Заметьте, что даже если вам необходимо создавать объект из подкласса, то вам не нужно изменять API. ... Я не пойму почему единственный: Если я укажу MySingleton ms1 = MySingleton.getInstance(); потом MySingleton ms2...n = MySingleton.getInstance() где тут рассмотреть единственный не ясно ) И! если вам необходимо создавать объект из подкласса, то вам не нужно изменять API. это как?? public class SubSingleton extends MySingleton { SubSingleton () {System.out.println("SubS");} если я укажу MySingleton ms1 = MySingleton.getInstance() выполнится ли печать "SubS" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 14:07:43 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
NewJaver Я не пойму почему единственный: Если я укажу MySingleton ms1 = MySingleton.getInstance(); потом MySingleton ms2...n = MySingleton.getInstance() где тут рассмотреть единственный не ясно ) В ms1 и ms2 вы получите ссылку на один и тот же экземпляр класса. Таким образом, в системе будет существовать единственный экземпляр, а ссылки на него Вы можете раскладывать хоть в сотню разных переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 14:13:57 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
y3uвложеный паблик класс с приватным конструктором, чтобы можно было инстансы делать только внутри класса, где находится этот вложеный класс, а использовать этот инстанс можно бы было снаружи. Это ясно, спасибо.. Да и мне хотелось бы узнать именно с функциональной точки зрения, т.к. действительно не вижу причин такого...- вот на форуме решил спросить... Вот если бы Вы пример дали ) где бы можно было убедиться в выгоде приват конструктора... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 14:23:28 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
pamir В ms1 и ms2 вы получите ссылку на один и тот же экземпляр класса. да точно ...спасибо - INSTANCE же static ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 14:29:54 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
NewJaver в выгоде приват конструктора... эту выгоду должен определять программист, как и во всех остальных случаях с контролем доступа к классам, обхектам, полям и методам, etc... Я вот всегда стараюсь делать приватным все по максимуму, чем меньше паблик АПИ, тем меньше надо на него бумажек писать, имхо, золотое правило ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 15:27:20 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
y3u эту выгоду должен определять программист, как и во всех остальных случаях с контролем доступа к классам, обхектам, полям и методам, etc... Я вот всегда стараюсь делать приватным все по максимуму, чем меньше паблик АПИ, тем меньше надо на него бумажек писать, имхо, золотое правило Спасибо...-буду иметь ввиду) У меня пока нет особого опыта в функциональности, а в первом своём сообщении этой темы предполагаемая там функциональность мне также показалась топорной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 16:00:35 |
|
||
|
Зачем используется private конструктор?
|
|||
|---|---|---|---|
|
#18+
А как вызвать приватный конструктор из теста? исключительно для поднятия code coverage? может как-то через reflection? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2007, 18:57:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34630767&tid=2145274]: |
0ms |
get settings: |
13ms |
get forum list: |
19ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
52ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
88ms |
get tp. blocked users: |
3ms |
| others: | 309ms |
| total: | 517ms |

| 0 / 0 |
