powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование
25 сообщений из 91, страница 3 из 4
Наследование
    #34825945
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krjhocrkjh _fromoracleВ том же NetBeans например нету автоматической закачки по FTP не сервер написанного кода.PHP в зубы, там есть скрипты для такой сложной задачи. NetBeans деплоит war-ы на сервер сам. Не знаешь, что такое war-ы? А .ул. ты на форуме вопросы задаешь, не прочитав http://www.sql.ru/forum/actualthread.aspx?tid=227954?

и в конструкторе дёргать this.setproperties();

И далее написать t.setproperties();Ничего не понял, кто на ком стоял? Когда сначала дергать t.setproperties, вначале или вконструкторе?


Заменить на

test newinstance = new test()
test.setproperties(newinstance.getproperties());
И никакой рефлексииА зачем вообще там рефлексия? Типа модно? "Эй, чувак, посмотри на меня, делай как я, делай как я!" ? Ы?

В общем, вопросов сей код вызывает столько, что непонятно, зачем вообще вся эта фигня написана.За жабу больше платят, чем за похапэ, вот поэтому эта вся фигня и пишется

Кстати массив я использую исключительно из за того что не нашёл как сделать ченить подобноеЯ с жабой уже 4 года разбираюсь. Это к тому, что если не нашёл, значит быстро искал. Годика через 3-4 приходи.

Куда приходить ?
Это ваш личный форум ?
Залез задал начинающий вопрос, кто смог - тот ответил.
То что вы такой умный сидите тут и хамите ничинающим - вот это действительно серьёзный показатель ...
...
Рейтинг: 0 / 0
Наследование
    #34825948
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle
А чем проблема поддерживать мою структуру ?
Кстати при Object[] нивжизнь не наткнётесь на ClassCastException :)

По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего.
Не совсем понимаю т.е. для каждого из пропертей свой класс ?
Может в этом и есть глубокий смысл, но мне видно не понять зачем ...

"впарить клиенту" - да всё уже впарено, вот сижу догоняю как улучшит код.

Наверное надо в команду идти уму разуму набираться, сразу стока много нового узнаешь, чего по книжкам никогда не догонишь, а потом через годик когда всё поймешь и станешь гуру задаешь себе вопрос а не**ра это было делать и лезешь в ветку форма "Java мне 35" ....

Вот такие дела ...
При Object? Запросто, как только вместо String потребуется класть свойство посложнее - тогда, чтобы его в нормальном виде получить, надо будет этот самый Object из массива приводить к энтому классу, а оператор-забивальщик всего этого пис оф крапа случайно забыл добавить наименование три тыщи четыреста десятого пропертя, в итоге индекс съехал на единицу и вместо MyPropertyClass под индексом 3411 в массиве лежит банальный стринг. В итоге - здравствуйте, уважаемые пользователи. Далее, что такое State/Command/Strategy - можно прочитать в любой книжке типа "Объектно-ориентированный дизайн для подготовительной группы детского сада". То, что Вы не знаете таких страшных словей - серьезный показатель. Оно, конечно, шаблоны GoF - не догма, но мозги на место ставят хорошо. Еще очень советую популярное книшко Фаулера "Рефакторинг". Там можно посмотреть описание того, что есть рефакторинг на самом деле, а не выдумывать собственное представление об этом понятии.

Я в том месте где первый раз упомянул рефакторинг, имел ввиду рефлексию - это в раздумьях очепятался....

По поводу всего остального ну не нужно мне это, так понятнее выражаюсь ???
Мне нужно было просто увидеть в родителе переменную ребёнка.
Как нужно будет обязательно открою отдельный топик и спрошу вас об этом ...
...
Рейтинг: 0 / 0
Наследование
    #34825949
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".
...
Рейтинг: 0 / 0
Наследование
    #34825954
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleПо поводу всего остального ну не нужно мне это, так понятнее выражаюсь ???
A!(c) Вопросов и комментариев больше не имею.
...
Рейтинг: 0 / 0
Наследование
    #34825955
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
...
Рейтинг: 0 / 0
Наследование
    #34825958
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Смеялсо. Немножко позитива не бывает лишним, спасибо
...
Рейтинг: 0 / 0
Наследование
    #34825961
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Смеялсо. Немножко позитива не бывает лишним, спасибо

Я бы после такого плакал ...
Честно .......
...
Рейтинг: 0 / 0
Наследование
    #34825970
гыгыгы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle Зашедший _fromoracle Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Смеялсо. Немножко позитива не бывает лишним, спасибо

Я бы после такого плакал ...
Честно .......
эмо?
...
Рейтинг: 0 / 0
Наследование
    #34825974
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЯ бы после такого плакал ... Честно .......
Ну, тогда человеку, называющему себя "программистом", после По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего вообще вешаться надо.
ЗЫ Ладно, все это флуд и оффтоп, завязываю. А почитать GoF & Фаулера таки рекомендую. Полезно,
притом для любого языка.
...
Рейтинг: 0 / 0
Наследование
    #34825978
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleЯ бы после такого плакал ... Честно .......
Ну, тогда человеку, называющему себя "программистом", после По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего вообще вешаться надо.
ЗЫ Ладно, все это флуд и оффтоп, завязываю. А почитать GoF & Фаулера таки рекомендую. Полезно,
притом для любого языка.

Блин чего тока про программистов не говорят.
Очередной бред...

Вы случайно не в Люксе работаете ?
Или в DeutchBank ?
Наверное Java Team Leader 3500$ ?


Не нужно мне всё это поскоку не пишу промышленный большой софт.
Всё тупо и банально......

Бай ...
...
Рейтинг: 0 / 0
Наследование
    #34825984
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle Зашедший _fromoracleЯ бы после такого плакал ... Честно .......
Ну, тогда человеку, называющему себя "программистом", после По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего вообще вешаться надо.
ЗЫ Ладно, все это флуд и оффтоп, завязываю. А почитать GoF & Фаулера таки рекомендую. Полезно,
притом для любого языка.

Блин чего тока про программистов не говорят.
Очередной бред...

Вы случайно не в Люксе работаете ?
Или в DeutchBank ?
Наверное Java Team Leader 3500$ ?


Не нужно мне всё это поскоку не пишу промышленный большой софт.
Всё тупо и банально......

Бай ...
Не, сейчас не в люксе и не дойче, а нащ0д позиции и компенсации - в общем как-то так, да.
Щаслива...
...
Рейтинг: 0 / 0
Наследование
    #34826016
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to: Зашедший

Да последний вопрос.
Сколько если не секрет у вас в конторе Junior-ы получают и сколько длится период их сидения в джуниорстве ?
...
Рейтинг: 0 / 0
Наследование
    #34826132
scof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}
...
Рейтинг: 0 / 0
Наследование
    #34826425
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}

Я понял тут каждый решает какую то свою задачу.
С вложенными подклассами не канает.

Правильный адекватный ответ дали два человека в этом топике, всё остальное гон, обсералово, и дешёвая попытка то ли навязать своё видение или идеололию то ли посмеятся и застебяать.

Тревожный показатель товарищи.
Задумайтесь ...
...
Рейтинг: 0 / 0
Наследование
    #34826436
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}



Про вложенные подклассы я конечно загнул.
Тут просто чтоли мой код переписали ?
Хорош флудить....
...
Рейтинг: 0 / 0
Наследование
    #34826438
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle _fromoracle scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}



Про вложенные подклассы я конечно загнул.
Тут просто чтоли мой код переписали ?
Хорош флудить....

А не всё сорри гоню.
Нашёл разницу......
Спасибо, попробую запустить...
...
Рейтинг: 0 / 0
Наследование
    #34826457
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЯ так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Да, я то же их alter ego.
Вчитайся в свои топики. В них одно хамство и маразм. Надо проще на жизнь смотреть, бери пример: http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=477272&mid=4714422&p=3&act=quot#4714427
ПМСМ, на юниора тебе рано еще идти, тебе бы пока на Pascal писать научится. С указателями поработать, алгоритмики написать А так, PHP - первый язык? SQL на уровне SELECT/UPDAT? Я отгадал?
...
Рейтинг: 0 / 0
Наследование
    #34826485
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv _fromoracleЯ так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Да, я то же их alter ego.
Вчитайся в свои топики. В них одно хамство и маразм. Надо проще на жизнь смотреть, бери пример: http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=477272&mid=4714422&p=3&act=quot#4714427
ПМСМ, на юниора тебе рано еще идти, тебе бы пока на Pascal писать научится. С указателями поработать, алгоритмики написать А так, PHP - первый язык? SQL на уровне SELECT/UPDAT? Я отгадал?

Не угадал...

Ты лучше вчитайтесь в свои топики.
Вот уж где точно неуважение , хамство и маразм ...

"на юниора тебе рано еще идти" - тебя спросить забыл ...
Сам то ты на чем пишешь неужто на джава.
А нафига тогда здесь сидишь ?
Некого больше уму разуму учить...

Ну не спрашивал я никого здесь кем мне работать, рано или нет, и пр.
Вопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...
...
Рейтинг: 0 / 0
Наследование
    #34826685
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleНу не спрашивал я никого здесь кем мне работать, рано или нет, и пр.
Вопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...

Ты напрасно обижаешься. Встретив альтернативную точку зрения, нужно радоваться. Радоваться возможности либо опровергнуть её (путём логических доводов, конечно же), либо изменить свою, тем самым лишившись части заблуждений (наличие которых свойственно любому человеку) или хотя бы возможности узнать что-то новое. Обижаясь, ты лишаешь себя этой радости и выставляешь на посмешище.
...
Рейтинг: 0 / 0
Наследование
    #34826906
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NotGonnaGetUs _fromoracleНу не спрашивал я никого здесь кем мне работать, рано или нет, и пр.
Вопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...

Ты напрасно обижаешься. Встретив альтернативную точку зрения, нужно радоваться. Радоваться возможности либо опровергнуть её (путём логических доводов, конечно же), либо изменить свою, тем самым лишившись части заблуждений (наличие которых свойственно любому человеку) или хотя бы возможности узнать что-то новое. Обижаясь, ты лишаешь себя этой радости и выставляешь на посмешище.

Это не обида.
Это скорее гнев и возмущение ...

Точка зрения "Учи ООП, ИДИНА PHP и прочее далёкое от реальности" конечно сильно альтернативная.

Логически я пытался общаться до наступления момента откоровенного стеба надо мной моими мыслями, кодом и фразочками типа "Ошибка в ДНК, Безнадёжный случай и клиника".

А по поводу на Посмешище - как то не особо парит, был бы перед кем стыдится ...
...
Рейтинг: 0 / 0
Наследование
    #34827233
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleВопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...
Проблема в том, что вместо вопроса - "А как вы считаете правильно" ты начинаешь отстаивать свою точку зрения. Плюс, вопрос действительно банальный и может быть решен с помощью Java Language Specification. Правильный вопрос должен был быть - "А почему так нельзя?". Идеальный вопрос - "А почему так нельзя, ведь этого полезно тогда-то и тогда-то". Вот эти вопрос, ПМСМ, являются хорошими и правильными.

Насчет хамства (http://www.sql.ru/forum/actualthread.aspx?tid=477272&pg=1#4711925):
_fromoracle
Типа самый умный ?

PS Почему-то grexhide вспомнился... Точнее, что он писал о JEE. Если человек не знает базовые понятия (типа правил наследования) и уже пишет корпоративные приложения (а где еще EJB нужен?), становится понятно - откуда может появляться негатив в отношение java-программистов.
...
Рейтинг: 0 / 0
Наследование
    #34827334
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЛогически я пытался общаться до наступления момента откоровенного стеба надо мной моими мыслями, кодом и фразочками типа "Ошибка в ДНК, Безнадёжный случай и клиника".

А по поводу на Посмешище - как то не особо парит, был бы перед кем стыдится ...

Главное не форма, а содержание. Разве нет? :)
Товарищи ведь верно подметили, что тебе надо учить ооп или идти писать на php и perl, если ты в них находишь прелесть.

Про наследование правильно ответили: не нужен здесь рефшлекшин.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 class  test
{
     private  Object[] properties = createProperties();

     protected  Object[] createProperties() //перекрывается в наследниках, если это необходимо
    {
         return   new  Object[]{
                "list1", source.list1(),
                "list2", source.list2(),
                //...
                "listn", source.listn()
        };
    }

     public  Object[] getProperties()
    {
         return  properties;
    }

     public   void  resetProperties() //"рефрешит" properties 
    {
        properties = createProperties();
    }
}

Так же разумно было замечено, что массив из Object не лучший способ хранить пары "ключ-значение", т.к. поиск по ключу значения требует линейного времени, т.к. нужно явно приводить object к требуемому типу, что не даёт возможности компилятору помочь отлавливать глупые ошибки в коде, т.к. почти наверняка код для поиска и перебора значений в properties при такой реализации будет дублироваться, а это ограничивает возможности безолезненного изменения представления properties в коде (что вполне вероятно в силу медленности доступа к нужному значению при текущей реализации), т.к. достаточно лёгко ошибиться в названии свойства и проблематично понять, какие свойства вообще есть у данного объекта.

Если прочитаешь "рефакторинг" фаулера, то сразу поймёшь сколько "душка" содержится в твоём коде и почему он вызывает такую реакцию у эмоционально не сдержанной публики на этом форуме, ну и поймёшь как этот код переделать.

В частности, если значения в свойствах могут быть только строками, можно поступить так:

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
 class  test
{
     public   static   final  String LIST1 = "list1";
     public   static   final  String LIST2 = "list2";
    //...
     public   static   final  String LISTN = "listn";

     private  Map<String, String> properties = createProperties();

     protected  Map<String, String> createProperties() //перекрывается в наследниках, если необходимо
    {
        //переделать объявление массива в инициализацию мапы, 
        //можно воспользовавшись find & replace функциональностью IDE или ultraedit'a

        //Константы вводятся при помощи средств автоматического рефакторинга в IDE

        HashMap<String, String> map =  new  HashMap<String, String>();

        map.put(LIST1, source.list1()); 
        map.put(LIST2, source.list2());
        //...
        map.put(LISTN, source.listn());

         return  map;
    }

     public  Map<String,String> getProperties()
    {
         return  properties;
    }

     public   void  resetProperties()
    {
        properties = createProperties();
    }
}

Этот код уже лучше, т.к. структура данных выбранная для хранения свойств в большей степени отражает их "сущность".

Если значения могут быть разных типов, то универсального решения уже не будет, т.к. многое зависит от _задачи_ (ты же привёл только _решение_).

Одним из "почти" универсальных решений, будет, не паря мозг, написать:
Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
 class  test
{
     private  String list1;
     private  String list2;
    //...
     private   int  listn;

     public  test()
    {
        resetProperties();
    }

     public   void  resetProperties()  //перекрывается в наследниках
    {
        list1 = source.list1();
        list2 = source.list2();
        //...
        listn = source.listn();
    }

     public  String getList1()
    {
         return  list1;
    }

     public  String getList2()
    {
         return  list2;
    }

    //...

     public   int  getListn()
    {
         return  listn;
    }
}


------

Отвергать предложенные тебе решения, основываясь на утверждении "нужно писать много строчек", можно только если программа сама по себе очень маленькая и пишется в одно рыло.
Не стыковка в том, что большинство участников форума работает не в одиночку и над достаточно крупными проектами, поэтому серьёзно принимать такой аргумент они не могут.
К тому же современные IDE делают львиную долю такой работы за тебя.
...
Рейтинг: 0 / 0
Наследование
    #34827464
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TO NotGonnaGetUs:
NotGonnaGetUs _fromoracleЛогически я пытался общаться до наступления момента откоровенного стеба надо мной моими мыслями, кодом и фразочками типа "Ошибка в ДНК, Безнадёжный случай и клиника".

А по поводу на Посмешище - как то не особо парит, был бы перед кем стыдится ...

Главное не форма, а содержание. Разве нет? :)
Товарищи ведь верно подметили, что тебе надо учить ооп или идти писать на php и perl, если ты в них находишь прелесть.

Про наследование правильно ответили: не нужен здесь рефшлекшин.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 class  test
{
     private  Object[] properties = createProperties();

     protected  Object[] createProperties() //перекрывается в наследниках, если это необходимо
    {
         return   new  Object[]{
                "list1", source.list1(),
                "list2", source.list2(),
                //...
                "listn", source.listn()
        };
    }

     public  Object[] getProperties()
    {
         return  properties;
    }

     public   void  resetProperties() //"рефрешит" properties 
    {
        properties = createProperties();
    }
}

Так же разумно было замечено, что массив из Object не лучший способ хранить пары "ключ-значение", т.к. поиск по ключу значения требует линейного времени, т.к. нужно явно приводить object к требуемому типу, что не даёт возможности компилятору помочь отлавливать глупые ошибки в коде, т.к. почти наверняка код для поиска и перебора значений в properties при такой реализации будет дублироваться, а это ограничивает возможности безолезненного изменения представления properties в коде (что вполне вероятно в силу медленности доступа к нужному значению при текущей реализации), т.к. достаточно лёгко ошибиться в названии свойства и проблематично понять, какие свойства вообще есть у данного объекта.

Если прочитаешь "рефакторинг" фаулера, то сразу поймёшь сколько "душка" содержится в твоём коде и почему он вызывает такую реакцию у эмоционально не сдержанной публики на этом форуме, ну и поймёшь как этот код переделать.

В частности, если значения в свойствах могут быть только строками, можно поступить так:

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
 class  test
{
     public   static   final  String LIST1 = "list1";
     public   static   final  String LIST2 = "list2";
    //...
     public   static   final  String LISTN = "listn";

     private  Map<String, String> properties = createProperties();

     protected  Map<String, String> createProperties() //перекрывается в наследниках, если необходимо
    {
        //переделать объявление массива в инициализацию мапы, 
        //можно воспользовавшись find & replace функциональностью IDE или ultraedit'a

        //Константы вводятся при помощи средств автоматического рефакторинга в IDE

        HashMap<String, String> map =  new  HashMap<String, String>();

        map.put(LIST1, source.list1()); 
        map.put(LIST2, source.list2());
        //...
        map.put(LISTN, source.listn());

         return  map;
    }

     public  Map<String,String> getProperties()
    {
         return  properties;
    }

     public   void  resetProperties()
    {
        properties = createProperties();
    }
}

Этот код уже лучше, т.к. структура данных выбранная для хранения свойств в большей степени отражает их "сущность".

Если значения могут быть разных типов, то универсального решения уже не будет, т.к. многое зависит от _задачи_ (ты же привёл только _решение_).

Одним из "почти" универсальных решений, будет, не паря мозг, написать:
Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
 class  test
{
     private  String list1;
     private  String list2;
    //...
     private   int  listn;

     public  test()
    {
        resetProperties();
    }

     public   void  resetProperties()  //перекрывается в наследниках
    {
        list1 = source.list1();
        list2 = source.list2();
        //...
        listn = source.listn();
    }

     public  String getList1()
    {
         return  list1;
    }

     public  String getList2()
    {
         return  list2;
    }

    //...

     public   int  getListn()
    {
         return  listn;
    }
}


------

Отвергать предложенные тебе решения, основываясь на утверждении "нужно писать много строчек", можно только если программа сама по себе очень маленькая и пишется в одно рыло.
Не стыковка в том, что большинство участников форума работает не в одиночку и над достаточно крупными проектами, поэтому серьёзно принимать такой аргумент они не могут.
К тому же современные IDE делают львиную долю такой работы за тебя.

Так оно и есть.
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...


TO: Leonidv

А вопроса "как ты считаешь правильно" я не задавал.
"ты начинаешь отстаивать свою точку зрения" - а кто её не отстаивает ?

По поводу моего "самый умный" - это был ответ товарищу за "Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?"

Товарищ вообще не разбираясь в сути вопроса начинает чего то там опровергать...

А вот ваше "во первых" , "во вторых" итп реально не в тему.

Если вы и большой начальник то тока над своими подчинёнными, но не над всем миром ...

Вот был бы я у вас в команде и начал бы гнать, то тогда я понимаю,
да и то скорее всего до конфликта и моего увольнения дошло бы....
...
Рейтинг: 0 / 0
Наследование
    #34827518
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...

Дело в том, что тот стиль, который Вы используете, ничего общего с правильным ОО-дизайном не имеет. Просто народ тут по умолчанию считает, что программист в общем должен профессионально расти, а не отбрыкиваться от советов по улучшению качества своего кода - в конце концов, это будет полезно пусть не для этого мелкого проекта, но для следующего, побольше - точно. И, кроме прочего, умение правильно проектировать и грамотно писать поднимает стоимость человека, выразимую в банальном бабле.
ЗЫ Про JavaJunior-вакансии - вилка обычная, 1000-1500, время хождения в юниорах обычно в районе года.
...
Рейтинг: 0 / 0
Наследование
    #34827571
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Так оно и есть.
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...

1). ПМСМ, не важно как пишешь. Писать всегда надо правильно. Иначе сам же потом не вспомнишь, что делал.
2). Что мешает поставить бесплатные и мощные Eclipse или NetBeans?

_fromoracle
А вопроса "как ты считаешь правильно" я не задавал.

Вот и я о том же. А надо бы.
_fromoracle
"ты начинаешь отстаивать свою точку зрения" - а кто её не отстаивает ?

Ее нужно аргументированно защищать. И совсем не обязательно кого-то убеждать, что они не правы. Почитай, подумай, и прими реши для себя как делать будешь. Но чтобы принять правильное решение, надо сначала понять - что тебе говорят другие. В твоих топиках не видно понимание того, что тебе пытаются донести.

_fromoracle
По поводу моего "самый умный" - это был ответ товарищу за "Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?"

Ты привел пример, тебе дали ответ. Зачем тогда было упрощать? Или почему нельзя было сразу всю картину описать?
_fromoracle
Товарищ вообще не разбираясь в сути вопроса начинает чего то там опровергать...

Товарищ разобрался в вопросе ровно настолько, насколько ты дал ему разобраться.

_fromoracle
Если вы и большой начальник то тока над своими подчинёнными, но не над всем миром ...

Я не начальник, хотя помощник у меня есть :)
_fromoracle
Вот был бы я у вас в команде и начал бы гнать, то тогда я понимаю,
да и то скорее всего до конфликта и моего увольнения дошло бы....
Вряд ли. Если бы ты уже был в моей команде, до тебя бы попытались донести как делать правильно. Одно дело лично общение и необходимость объяснять, а другое - общение на форуме. Тут и поругаться можно ;) Твоя проблема, скорее всего, в том, что ты пишешь в одиночку. В коллективе многие вопросы решаются проще, плюс опытом люди делятся.
Другой вопрос в том, что чтобы попасть в команду не плохо бы знать что такое GoF и рефакторинг. Ты там про junior позицию спрашивал, так вот, я думаю такие вещи на собеседование спрашивают.
...
Рейтинг: 0 / 0
25 сообщений из 91, страница 3 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]