Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / конструктор в абстрактном классе / 18 сообщений из 18, страница 1 из 1
06.02.2007, 17:40:20
    #34310183
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
есть такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 public   abstract   class  MyClass {
     private   final  ArrayList<String> arrayList;
    
     protected  EncoderGetter(ArrayList<String> arrayList) {
         this .sign = sign;
    }
...........
а потом в наследниках писать:
Код: plaintext
1.
2.
3.
     public  MyClassChild(ArrayList<String> arrayList) {
         super (arrayList);
    }
Так лучше не делать?
...
Рейтинг: 0 / 0
06.02.2007, 18:44:51
    #34310447
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
1. MyClass != MyClassChild
2. вы о чём?
3. в чём проблемы?
...
Рейтинг: 0 / 0
06.02.2007, 19:03:52
    #34310504
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
exppMyClass != MyClassChild
Видимо автор имеет ввиду, что MyClassChild потомок от MyClass.

Michael PonomarevТак лучше не делать?
Почему Вы так решили? Откуда выводы? Я не вижу здесь никакого криминала, можно посмотреть реализации абстрактных классов и расширяющих их наследников в библиотеке Swing и увидеть много подобных вещей.
...
Рейтинг: 0 / 0
06.02.2007, 21:07:50
    #34310699
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
З.ы. Возможно имелось ввиду

Код: plaintext
1.
2.
3.
 protected  EncoderGetter(ArrayList<String> arrayList) {
      this .arrayList = arrayList;
}

???
...
Рейтинг: 0 / 0
06.02.2007, 22:58:29
    #34310805
jusio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
Ага, тогда тут явный anti-pattern, OneClassDependency. ArrayList<String> заменить на List<String> или вообще на Collection
...
Рейтинг: 0 / 0
07.02.2007, 00:07:00
    #34310869
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
jusioАга, тогда тут явный anti-pattern, OneClassDependency. ArrayList<String> заменить на List<String> или вообще на Collection
Антипаттерн - громко сказано. Скорее отход от принципа, метко сформулированного русским народом - "меньше знаешь, лучше спишь".
...
Рейтинг: 0 / 0
07.02.2007, 09:37:46
    #34311237
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
jusioАга, тогда тут явный anti-pattern, OneClassDependency. ArrayList<String> заменить на List<String> или вообще на Collection

Кстати, в некоторых случаях бывает необходимо(или удобно) использовать ArrayList вместо List (в jakarta-commons часто используется).
Например для того, чтобы вызвать метод clone().
...
Рейтинг: 0 / 0
07.02.2007, 09:59:47
    #34311322
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
Michael Ponomarevесть такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 public   abstract   class  MyClass {
     private   final  ArrayList<String> arrayList;
    
     protected  EncoderGetter(ArrayList<String> arrayList) {
         this .sign = sign;
    }
...........
а потом в наследниках писать:
Код: plaintext
1.
2.
3.
     public  MyClassChild(ArrayList<String> arrayList) {
         super (arrayList);
    }
Так лучше не делать?

Я так понимаю у вас опечатка - EncoderGetter = MyClass? Если так то никакого криминала (кроме того что действительно лучше оставить просто List) нет. Вот если бы у вас виртуальный метод в конструкторе вызывался...
...
Рейтинг: 0 / 0
07.02.2007, 10:00:43
    #34311328
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
Не я имел в виду именно про "конструктор абстрактного класса" В том смысле нормально ли вообще в абстрактном классе писать конструктор? или более правильно перенести конструктор в наследника? В принципе в этом топике уже ответели что такое допустимо.
...
Рейтинг: 0 / 0
07.02.2007, 10:03:05
    #34311343
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
2 funikovyuri и All
действительно опечатка EncoderGetter = MyClass
...
Рейтинг: 0 / 0
07.02.2007, 10:57:16
    #34311590
конструктор в абстрактном классе
jusioАга, тогда тут явный anti-pattern, OneClassDependency. ArrayList<String> заменить на List<String> или вообще на Collection

Сами вы антипаттерн.
ArrayList определяет лист cо временем доступа к i-ому элементу за o(1).
Для ряда алгоритмов - это СУЩЕСТВЕННО.

Поэтому употреблять слово "явный" крайне не осмотрительно.
...
Рейтинг: 0 / 0
07.02.2007, 17:54:03
    #34313662
jusio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
"употреблять". jusioАга, тогда тут явный anti-pattern, OneClassDependency. ArrayList<String> заменить на List<String> или вообще на Collection

Сами вы антипаттерн.
ArrayList определяет лист cо временем доступа к i-ому элементу за o(1).
Для ряда алгоритмов - это СУЩЕСТВЕННО.

Поэтому употреблять слово "явный" крайне не осмотрительно.
Я чуток плохо описал проблему. Проблема не в том что у атрибута arrayList тип ArrayList. Проблема в том что параметр конструктора имеет тип ArrayList. Всегда надо будет создавать новый ArrayList и наполнять его данными, чтобы получить экземпляр класса MyClass. Что не совсем удобно.
...
Рейтинг: 0 / 0
07.02.2007, 18:03:37
    #34313704
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
Позвольте так сказать вмешаться аффтару топика

У меня _заполнение_ arrayList как раз происходит внутри класса, в который
arrayList передается параметром конструктора. Это "некрасиво"?


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
07.02.2007, 18:38:39
    #34313810
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
Скорее некрасиво, чем красиво. Лучше использовать просто интерфейс List. Программу будет гибче. Если, конечно, нет каких-то особых причин использовать именно ArrayList (критично время доступа к элементам).
...
Рейтинг: 0 / 0
07.02.2007, 18:51:29
    #34313858
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
склонность к перфектизации какая-то повальная, а не топик :) То что что-то передается в базовый класс через конструктор (то что класс - абстрактный не важно) само по себе совершенно не страшно...
...
Рейтинг: 0 / 0
09.02.2007, 03:22:03
    #34317679
kdanylo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
A Allen Holub govorit chto nasledovanie eto zlo

tut
...
Рейтинг: 0 / 0
09.02.2007, 10:17:20
    #34318018
raidan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
kdanyloA Allen Holub govorit chto nasledovanie eto zlo
При разработке у него стоят другие задачи. Этот чувак пишет заранее хорошо спроектированную систему, которая не будет меняться и не спеша.
А если у тебя завтра может настать такая ситуация, что требуется срочно прикрутить несколько дополнительных фич, то ты будешь выть, исправляя копи-пастом одинаковые куски в почти одинаковых 20 классах (хотя можно было бы исправить только в базовом).
...
Рейтинг: 0 / 0
09.02.2007, 11:12:11
    #34318242
kdanylo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструктор в абстрактном классе
Net takih system kotorie ne meniajutsia:)
Est' gibkie systemy v kotorye legko vnosit' izmenenija i systemy dubovie, zavisiashchie ot konkretnyh realizatsiy mnogochislennyh classov ili v hudshem sluchae neskol'ko protsedur na 100 listov koda s millionom (if - else).
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / конструктор в абстрактном классе / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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