powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / тестовое задание
28 сообщений из 28, показаны все 2 страниц
тестовое задание
    #37642768
spbsmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

тестовое задание :

Задача создать GUI приложение для конвертации файлов данных разных форматов. Данными в приложении является массив точек (x, y).
1. Сделать поддержку разных форматов хранения координат – текстовый, бинарный, xml.
2. Создать тестовый файл с большим объемом данных (порядка миллиона точек)
3. Создать GUI приложение, в котором есть возможность конвертировать файл данных в любой из поддерживаемых форматов. В процессе конвертации отображать диалоговое окно, отображающее % конвертации с кнопкой “Отмена”.
Примечания.
Приветствуется документирование кода.


возможно ли сделать это тестовое задание , если я прочел в thinkin in java примерно половину( до 8 главы ), параллельно Хорстмана читаю.
ну конечно это все фигня . при желании можно в космос полететь(с)

я не прошу его сделать) ткните меня, что мне надо прочитать)
как примерно его делать . с чего начинать?
на сколько оно сложное?
срок 4 дня.


спасибо!)
...
Рейтинг: 0 / 0
тестовое задание
    #37642793
crawfish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начни с того что напиши простое консольное приложение которому передаются в качестве параметров имя входного файла и в какой его конвертировать. Читай потоки ввода и вывода и гугл тебе в помощь. Дальше нацепишь GUI на это все.
...
Рейтинг: 0 / 0
тестовое задание
    #37642796
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spbsmile1. Сделать поддержку разных форматов хранения координат – текстовый, бинарный, xml.

Главное будут смотреть здесь. Тут от вас ожидают использование шаблона "factory method".
...
Рейтинг: 0 / 0
тестовое задание
    #37642814
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spbsmile,

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

Главное будут смотреть здесь. Тут от вас ожидают использование шаблона "factory method".Ну здрасти приехали. Factory это creational pattern. Что вы тут собираетесь криэйтить? Разумеется, в этом месте надо применять что-то из behavioural паттернов. Например - стратегия, или тимплейт, или их помесь, или еще чего - способов решения дохрена. А вы мало того, что привязваете автора к одному конкретному решению, так еще и само решение неправильное предлагаете.
Начинающие программисты должны с пеленок знать, что в программировании небывает никаких абсолютных истин ("делай так и точка!"), что решений всегда много, и что мастерство программиста заключается в нахождении правильного компромисного решения в отдельной взятой задаче.
...
Рейтинг: 0 / 0
тестовое задание
    #37642861
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заданиеЗадача создать GUI приложение для конвертации файлов данных разных форматов


svenomLeonidvпропущено...

Главное будут смотреть здесь. Тут от вас ожидают использование шаблона "factory method".Ну здрасти приехали. Factory это creational pattern. Что вы тут собираетесь криэйтить? Разумеется, в этом месте надо применять что-то из behavioural паттернов.

GoF перечитай, тот раздел, где про factory method говорится. Если есть обоснованное суждение, почему здесь не подходи фабричный метод - обоснуй.
...
Рейтинг: 0 / 0
тестовое задание
    #37642868
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли есть обоснованное суждение, почему здесь не подходи фабричный метод - обоснуй.Обоснование очень простое - тут нечего создавать. Для того, что бы наклепать по одному инстансу "сохранятеля" в XML, текст и т.д.. никакой фактори не нужен.
...
Рейтинг: 0 / 0
тестовое задание
    #37642880
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomавторЕсли есть обоснованное суждение, почему здесь не подходи фабричный метод - обоснуй.Обоснование очень простое - тут нечего создавать. Для того, что бы наклепать по одному инстансу "сохранятеля" в XML, текст и т.д.. никакой фактори не нужен.
Я же не зря задание скопировал. У него не только "сохранятель" у него и "считыватель" - классический пример фабричного метода.
...
Рейтинг: 0 / 0
тестовое задание
    #37642884
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spbsmile3. Создать GUI приложение, в котором есть возможность конвертировать файл данных в любой из поддерживаемых форматов. В
Ага, вот тут еще про SwingWorker надо почитать.

Вообще, хорошее задание. Мне нравится - достаточно грамотно проверяет знание Swing и ООП.
...
Рейтинг: 0 / 0
тестовое задание
    #37642886
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое сложное - в одновременной конвертации и отрисовке прогресса.
Самый простой способ этого добиться - делать так:
http://docs.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html
Там есть пример с простыми числами, эквивалентный вашей задаче.

Для бинарного формата используйте ObjectInputStream и ObjectOutputStream.

Для текстового:
http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

Для XML:
Чтение:
http://docs.oracle.com/javase/1.4.2/docs/api/javax/xml/parsers/SAXParser.html
Запись:
http://docs.oracle.com/javase/6/docs/api/javax/xml/stream/XMLOutputFactory.html
http://docs.oracle.com/javase/6/docs/api/javax/xml/stream/XMLStreamWriter.html
...
Рейтинг: 0 / 0
тестовое задание
    #37642890
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЯ же не зря задание скопировал. У него не только "сохранятель" у него и "считыватель" - классический пример фабричного метода.Мде, и вы мне еще советуете GoF почитать :)
1) Factory Method по своему смыслу производит объекты, реализующие один и тот же интерфейс, поэтому подогнать под этот паттерн создание и "сохранятеля" и "считывателя" ну никак не получится.
2) То, про что вы говорите, называется Abstract Factory, а не Factory Method. Теперь моя очередь рекомендовать вам освежить в голове GoFа.
3) Ни Factory Method, ни Abstract Factory тут нафиг не сдались, ибо это тестовая задача, никакого смысла громоздить в ней эти конструкции нет. Достаточно сделать что-то типа (грубо)
Код: java
1.
2.
3.
4.
5.
6.
7.
public interface CoordinateProcessor {
    public List<Coordinate> read(File file);
    public void write(List<Coordinate> coordinates, File file)
}
public class XMLCoordinateProcessor implements CoordinateProcessor {
    ...
}

и потенциальный работодатель уже будет писать кипятком.
...
Рейтинг: 0 / 0
тестовое задание
    #37642902
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
public interface CoordinateProcessor {
public List<Coordinate> read(File file);
public void write(List<Coordinate> coordinates, File file)
}
public class XMLCoordinateProcessor implements CoordinateProcessor {
...
}

Только лучше все в память не загружать. Понятно, что задача учебная, но тем не менее.
...
Рейтинг: 0 / 0
тестовое задание
    #37642904
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom2) То, про что вы говорите, называется Abstract Factory, а не Factory Method. Теперь моя очередь рекомендовать вам освежить в голове GoFа.

Не надо за меня говорить, о чем я говорю. Я говорю именно о factory method.

svenom3) ибо это тестовая задача, никакого смысла громоздить в ней эти конструкции нет. Достаточно сделать что-то типа (грубо)
и потенциальный работодатель уже будет писать кипятком.
Вот как раз потому что это тестовая задача, и надо показать знание стандартных (ООП) приемов.

У вас нужно сколько конкретных реализаций CoordinateProcessor создать? n^2, где n число поддерживаемых форматов? (XMLtoBinaryProcessor, XMLtoXMLProcessor ... )

По сути. Тут два варианта использования, смотря как делать. Если позволить редактировать данные (в ТЗ этого нет, но я почему-то сразу представил себе табличку), то делаем как-то так (код не Java):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
interface DataHandler {
 List<Coordinate> getData() 
 void save(SaveStrategy saver);
}

main {
 Date data = Data.loadFromFile(fileName) // фабричный метод
}



Если же не позволять редактировать данные (т.е. мы при запуске сразу знаем и формат входа, и формат вывода), то можно применить builder, тогда будет как-то так:

Код: java
1.
2.
3.
main {
 Processor processor = ProcessorBuilder.from(inputFileName).to(outputFileName)
}



Судя по тому, насколько грамотно составлено ТЗ (например, пункт 2 проверяет классическую ошибку новичка, конкатенацию строк вместо использования StringBuilder при считывание текстового файла), работодатель ожидает чего-то, показывающий общий уровень владения ООП.
...
Рейтинг: 0 / 0
тестовое задание
    #37642909
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪТолько лучше все в память не загружать. Понятно, что задача учебная, но тем не менее.Ну опять стереотипы какие-то. Почему не загружать? Вы знаете, что из себя представляет класс "координата"? А что сколько их там будет? А как их тогда считывать, не загружая в память? Держать открытым файловый поток? А как долго держать? А кто его будет закрывать потом?
То есть какая-то необоснованная додумка "не загружать память" сразу резко повышает сложность реализации.
...
Рейтинг: 0 / 0
тестовое задание
    #37642925
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv
Код: java
1.
Date data = Data.loadFromFile(fileName) // фабричный метод

Все, понял. Вы напрочь не понимаете, что такое фабричный метод, ибо то, что вы привели, это обычный статический метод и все. Даю вам маленький ликбез на эту тему.
Вот пример использования фабричного метода:
Код: java
1.
2.
SAXParserFactory factory = ...;
SAXParser parser = factory.newInstance();

А вот его реализация (псевдокод):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class SAXParserFactory {
    ...
    public SAXParser newInstance() {
        if (что-то) {
            return new CoolSAXParser();
        } else {
            return new BadSAXParser();
        }
    }
    ...
}

Идею улавливаете? Цель Factory Method - вернуть пользователю интерфейс , то есть, что бы пользователь не знал, с интансом какого класса он работает, и что бы ему не приходилось инстанцировать класс руками.
В вашем же случае:
1) Нет никакой фабрики, есть просто какой-то статический метод
2) Если даже напрячься и попытаться воспринять ваш пример в качестве фабрики ... это все равно не получится, так как фабрика должна возвращать какой-то интерфейс, а ваш метод возвращает уже сами данные.
Надо быть аккуратнее с советами - их лучше давать только тогда, когда понимаешь, о чем говоришь. К сожалению, это не ваш случаи.
...
Рейтинг: 0 / 0
тестовое задание
    #37642928
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidvнапример, пункт 2 проверяет классическую ошибку новичка, конкатенацию строк вместо использования StringBuilder при считывание текстового файлаГде вы там вообще увидели конкатенацию строк? Что бы записать что-то в файл, нужно открыть поток и записать туда данные строка за строкой. Данные пишутся в поток, нет никакой конкатенации или StringBuilder
...
Рейтинг: 0 / 0
тестовое задание
    #37642942
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomLeonidv
Код: java
1.
Date data = Data.loadFromFile(fileName) // фабричный метод

Все, понял. Вы напрочь не понимаете, что такое фабричный метод, ибо то, что вы привели, это обычный статический метод и все. Даю вам маленький ликбез на эту тему.
Вот пример использования фабричного метода:
Код: java
1.
2.
SAXParserFactory factory = ...;
SAXParser parser = factory.newInstance();

А вот его реализация (псевдокод):
Идею улавливаете?
Идею фабричного метода я лет пять назад уловил.
А вы вот почему-то идеи собеседников улавливать не хотите. Ну тогда я разжую:
Код: java
1.
2.
3.
4.
5.
6.
7.
DataHandler loadFromFile(String fileName) {
 if (filename.endWith(".xml") {
   return new XMLData(filename)
} else if (filename.endWith(.txt) {
  return new TXTData(filename)
} else if ....
}


Мне не нравятся названия XMLData и TXTData, ну да фиг с ним. Контракт Data можно изменить так, чтобы явно показать считывание данных:
Код: java
1.
Data implements Iterator<Coordinate>



В любом случае, предложенное вами решение, требующее n^2 классов, есть пример ужасного ООП.
...
Рейтинг: 0 / 0
тестовое задание
    #37642945
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня путаница в названиях. Вместо дата везде читать DataHandler.
...
Рейтинг: 0 / 0
тестовое задание
    #37642948
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv ,
Ок, тогда уже ближе. Остается вопрос - зачем вы сделали этот метод статическим? Что бы программист никак не смог протестировать зависимый от него класс без наличия реального файла? Пичалька.
...
Рейтинг: 0 / 0
тестовое задание
    #37642951
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvВ любом случае, предложенное вами решение, требующее n^2 классов, есть пример ужасного ООП.Где же вы там n^2 (это что, степень?) увидели?
...
Рейтинг: 0 / 0
тестовое задание
    #37642981
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom Leonidv ,
Ок, тогда уже ближе.
Так изначально было.

svenomОстается вопрос - зачем вы сделали этот метод статическим? Что бы программист никак не смог протестировать зависимый от него класс без наличия реального файла? Пичалька.
Ну сделайте его не статическим. С точки зрения паттернов ООП должен быть именно статический метод. С точки зрения тестирования - обычный, согласен.

По поводу n в квадрате. А у вас какая формула получается для вашего интерфейса? Я свои выводы уже приводил ранее.
...
Рейтинг: 0 / 0
тестовое задание
    #37643004
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvС точки зрения паттернов ООП должен быть именно статический метод.
С точки зрения ООП статических методов в Java коде не должно быть вообще. Они не обладают полноценным динамическим полиморфизмом поэтому к ООП не относятся.
...
Рейтинг: 0 / 0
тестовое задание
    #37643159
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spbsmile возможно ли сделать это тестовое задание , если я прочел в thinkin in java примерно половину( до 8 главы ), параллельно Хорстмана читаю. ну конечно это все фигня . при желании можно в космос полететь(с)
я не прошу его сделать) ткните меня, что мне надо прочитать)
как примерно его делать . с чего начинать?
на сколько оно сложное?
срок 4 дня.

1. Ты только не обижайся, но с твоим "опытом" получится говнокод, который работодатель всё равно выбросит в корзину и даже не будет тратить время на объяснения почему..
2. Поэтому не советую тебе интенсивно ломать мозги в столь короткий срок. Лучше просто возьми это задание за основу и изучай спокойно, не торопясь, тщательно и глубоко, те темы, которое оно затрагивает. Потрать на это ОТ месяца времени. Если сейчас тупо нагуглишь сэмплов и свалишь всё в приложение, см. пункт 1. )))
3. Кстати, читать лучше бы англоязычные учебники. На русском, кроме Эккеля и Портянкина, ничего толкового не издавалось..
4. Для начала сделай консольное приложение. Затем консольное приложение с нормальным уровнем абстракции, приемами ООП, попробуй какой-то паттерн реализовать. Затем попробуй сделать на Swing. Затем прочитай Портянкина и сделай нормальное приложение на Swing. )))
5. Всё сказанное - от души, пройдено лично в относительно недавнее время, испытано так сказать на себе..
6. Задание интересное!
...
Рейтинг: 0 / 0
тестовое задание
    #37643194
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvС точки зрения паттернов ООП должен быть именно статический метод. Ну разумеется нет. Это вы просто на википедии такой пример посмотрели. Blazkowicz абсолютно верно объяснил, почему статики быть не должно (в реальности - почему ее еколичество должно стремиться к минимуму).
LeonidvПо поводу n в квадрате. А у вас какая формула получается для вашего интерфейса? Я свои выводы уже приводил ранее.Формула? Формула чего? У меня ровно столько же классов, сколько и у вас.
...
Рейтинг: 0 / 0
тестовое задание
    #37643278
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomНу разумеется нет. Это вы просто на википедии такой пример посмотрели.

В wikipedia я паттерны очень аккуртно смотрю. Там много чего мне не нравится.

svenomBlazkowicz абсолютно верно объяснил, почему статики быть не должно (в реальности - почему ее еколичество должно стремиться к минимуму). Аргумент насчет тестирования для меня вполне убедителен, поэтому тут спорить не буду. Мое решения будет зависит от ситуации. Но я пока не встречал у себя такого, чтобы наличие статичного метода создавало проблемы с тестированием.

Может быть. Только работать со статичными методами зачастую гораздо удобнее, чем с не статичными. Даже google guava вся на статике построена. Аналогично JUnit и еще кучу библиотек можно привести в пример.

svenomФормула? Формула чего? У меня ровно столько же классов, сколько и у вас.
Ровно столько же, сколько у меня не получится. У вас или n классов, или n^m, где n количество поддерживаемых входных данных, m - количество поддерживаемых выходных данных. Немного расширим задачу. Предположим, что количество входных файлов не соответствует количеству выходных. У вас получатся сущности с пустыми методами?

ПМСМ, статичные методы плохи в ООП не тем, что они статичны, а тем, что получается вырожденные классы (без состояния). Примерно ваш случай.

И в любом случае, фабричный метод может быть успешно применён и в вашем дизайне, и в моем.
...
Рейтинг: 0 / 0
тестовое задание
    #37643313
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvМожет быть. Только работать со статичными методами зачастую гораздо удобнее, чем с не статичными. Даже google guava вся на статике построена. Аналогично JUnit и еще кучу библиотек можно привести в пример.Все верно, удобнее. Только вы не учли один момент - удобнее, когда эти статичные методы присутствуют в уже готовой библиотеке, которой вы пользуетесь - т.е., которую вы точно не будете менять, тестировать и поддерживать. И как раз ваши примеры - Guava, JUnit - это вспомогательные библиотеки, это не бизнес-логика. Поэтому им простительно, так же, как и java.util.Collections и иже с ними.
Но для прикладный программистов такое в подавляющем большинстве случаев абсолютно неприемлемо.

LeonidvРовно столько же, сколько у меня не получится. У вас или n классов, или n^m, где n количество поддерживаемых входных данных, m - количество поддерживаемых выходных данных. Немного расширим задачу. Вы что-то не так считаете. Если у нас n входных типов и m выходных, то у меня будет DISTINCT (n OR m) - то есть столько классов, сколько уникальных типов данных есть.

LeonidvПредположим, что количество входных файлов не соответствует количеству выходных. У вас получатся сущности с пустыми методами?Предположил - не получилось. То есть, например, мы должны читать из XML, но не можем в него писать? Если даже так, то реализовать запись это несколько строк кода, ибо основная сложность - это всякий хлам для сериализации/десериалиазции, который так и так придется писать.

LeonidvПМСМ, статичные методы плохи в ООП не тем, что они статичны, а тем, что получается вырожденные классы (без состояния). Примерно ваш случай.То есть stateless-классы это по умолчанию плохо? У вас работа с БД, например, считывание - всегда stateful? А сервлеты у вас все stateful? А stateless бины из EJB - это тоже плохо? Stateless - это просто один из подходов к реализации сервисов, не большое. Он не плохой и не хороший, он просто решает свои задачи. И на уровне бизнес-логики stateless-сервис, прикрытый интерфейсом, всегда лучше, чем статический метод, так как:
1) Мы достигаем слабое связывание - пользователи сервиса не зависят от его конечной реализации
2) Мы можем легко вставить заглушку на этот сервис в unit-тестах.
А в случае static-методов мы намертво привязываемся к реализации метода и никак не можем от него избавиться.

LeonidvИ в любом случае, фабричный метод может быть успешно применён и в вашем дизайне, и в моем. Может. Вот только необходимость его использования далеко не очевидна. От автора ожидают в первую очередь умение работы с файлами, с XML, с серилазацией, с потоками, понимание понятия "интерфейс", а не применения паттернов с непонятной целью
...
Рейтинг: 0 / 0
тестовое задание
    #37643335
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczС точки зрения ООП статических методов в Java коде не должно быть вообще. Они не обладают полноценным динамическим полиморфизмом поэтому к ООП не относятся.
+1
...
Рейтинг: 0 / 0
тестовое задание
    #37643471
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomLeonidvМожет быть. Только работать со статичными методами зачастую гораздо удобнее, чем с не статичными. Даже google guava вся на статике построена. Аналогично JUnit и еще кучу библиотек можно привести в пример.Все верно, удобнее. Только вы не учли один момент - удобнее, когда эти статичные методы присутствуют в уже готовой библиотеке, которой вы пользуетесь - т.е., которую вы точно не будете менять, тестировать и поддерживать. И как раз ваши примеры - Guava, JUnit - это вспомогательные библиотеки, это не бизнес-логика. Поэтому им простительно, так же, как и


А в любом проекте есть бизнес-логика, а есть вспомогательные методы. Кто их поддерживает, в общем случае, не так важно. Фабричный метод, для меня, это в чистом виде вспомогательный метод.

svenomLeonidvРовно столько же, сколько у меня не получится. У вас или n классов, или n^m, где n количество поддерживаемых входных данных, m - количество поддерживаемых выходных данных. Немного расширим задачу. Вы что-то не так считаете. Если у нас n входных типов и m выходных, то у меня будет DISTINCT (n OR m) - то есть столько классов, сколько уникальных типов данных есть.

Угу. Изначально просто n = m, поэтому у вас n классов.

svenomLeonidvПредположим, что количество входных файлов не соответствует количеству выходных. У вас получатся сущности с пустыми методами?Предположил - не получилось. То есть, например, мы должны читать из XML, но не можем в него писать? Если даже так, то реализовать запись это несколько строк кода, ибо основная сложность - это всякий хлам для сериализации/десериалиазции, который так и так придется писать.

Например так. Только не XML, а какой-то другой формат. Запись, как правило, делать легче, чем чтение. Так что измените пример - надо считать из большего количества классов, а записать в меньшее.
svenomLeonidvПМСМ, статичные методы плохи в ООП не тем, что они статичны, а тем, что получается вырожденные классы (без состояния). Примерно ваш случай.То есть stateless-классы это по умолчанию плохо? У вас работа с БД, например, считывание - всегда stateful?

Скорее всего, как и у вас. Настройки к СУБД у вас же не прописаны в каждом DAO, а получаются из соединения или еще как.


svenomА сервлеты у вас все stateful? А stateless бины из EJB - это тоже плохо? Stateless - это просто один из подходов к реализации сервисов, не большое. Он не плохой и не хороший, он просто решает свои задачи. И на уровне бизнес-логики stateless-сервис, прикрытый интерфейсом, всегда лучше, чем статический метод, так как:
1) Мы достигаем слабое связывание - пользователи сервиса не зависят от его конечной реализации
2) Мы можем легко вставить заглушку на этот сервис в unit-тестах.
А в случае static-методов мы намертво привязываемся к реализации метода и никак не можем от него избавиться.

С этим согласен.

svenomLeonidvИ в любом случае, фабричный метод может быть успешно применён и в вашем дизайне, и в моем. Может. Вот только необходимость его использования далеко не очевидна. От автора ожидают в первую очередь умение работы с файлами, с XML, с серилазацией, с потоками, понимание понятия "интерфейс", а не применения паттернов с непонятной целью
Сериализация в этой задачи абсолютно лишняя. Что там сериализовывать (я про интерфейс serializable говорю)?
Не вы это задание писали, так что вы не можете сказать, что там ждут. Судя по тому, что эта классическая задача, ждут классического решения, показывающее знакомство с паттернами ООП. Понятно, что любую задачу можно решить кучей способов, возможно что тут вообще можно сделать все без ООП в одной форме и шестью методами. И что?

В общем, понятно. Вы считаете, что здесь не уместен фабричный метод, я считаю - что уместен. Дальше спорить смысла нет. Пойдем по второму кругу или уйдем еще куда. Автор темы прочитает и сделает так, как сочтет нужным. Работодатель посмотрит и примет то решение, которое сочтет нужным.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / тестовое задание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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