![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
суть проблемы: получил тестовое задание, выполнил, отправил. код рабочий.
в коде - два основных класса (список и его элемент) и несколько совсем маленьких. очень хочу показать код гуру на предмет выявления того - как на яве делать не стоило или что не соответствовало заданию (то есть на предмет криминала), но знакомого гуру к сожалению нету. если бы кто-нить согласился посмотреть - был бы очень благодарен. все выкладывать наверно здесь не стоит поэтому вот мое мыло |
|||
|
||||
| serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: 1 Всего: 1 |
А гуру должен также взломать твое мыло, чтобы посмотреть код?
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
| Metal_Heart |
|
|||
|
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
serious, иначе это не гуру
-------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
le_chat, форум предназначен для коллективного обсуждения проблем, а не для обмена e-mail-ами. Если тебе есть что показать, выкладывай это здесь. Если эта информация секретная, по тем или иным причинам, то тогда тем более не следует ее отдавать малознакомому человеку.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| le_chat |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
не секретная. просто много. вот сформулиолванная задача:
Добавлено @ 16:10 class Item
|
||||
|
|||||
| le_chat |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
class List - нередактируемый список. написан как сортируемый по id итема
class ItemGroup - редактируемый - наследник от List
последний - class Main - он же запускаемый, он же демострация. - придумал как смог.
Добавлено @ 16:13 насчет сохранения/загрузки в задании честно говоря не догнал - почему стандартной сериализации не достаточно? |
||||||
|
|||||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Э-э... Я не знаю, подпадаю ли я под категорию "гуру", да и не вникал особо
Это сообщение отредактировал(а) w1nd - 26.10.2006, 21:43 -------------------- ![]() ![]() |
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
спасибо за ответ, но поправьте меня если я не прав:
AbstractList допускает модификацию списка (так как реализует интерфейс List) чего нельзя делать по условию (список-то должен быть немодифицируемый); java.lang.Comparable реализован в классе Item, но так как из задания нельзя толком понять как требуется сравнивать Item'ы - они сравниваются по id; требование про генерацию было высказано вместе с выдачей задания; реализованный список представляет собой список, сортированный по полю id - поэтому поиск по этому полю в списке - самый быстрый из возможных - в худшем случае 8-9 итераций на сотню значений; пересортировка по другим полям осуществляется тоже с учетом того что списки сортированные - поэтому здесь торможения не придвидится; насчет обработки - здесь согласен - хотя с другой стороны применять этот класс будет не конечный пользователь - и если просто указать что "в процессе IO произошла ошибка" - это тоже не больно вразумительное сообщение... если честно - то просто не знал чего туда можно запихать.... |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
На этот счет есть два варианта: использовать обертку Collections.unmodifiableList(), или переопределить все методы которые модифицируют список и просто выбрасывать UnsupportedOperationException. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| w1nd |
|
||||||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Нет, не допускает.
Именно так и сделано в AbstractList
Это я попутался, прошу прощения, хотел написать java.util.Comparator (в принципе, мою мысль можно было бы и так понять, просмотрев все варианты Collections.sort() З. Ы. Да, и на счёт торможения я бы меньше всего беспокоился. Задачи, при решении которых контейнеры начинают заметно (не сильно, а заметно) тормозить процесс, довольно редки. Это сообщение отредактировал(а) w1nd - 27.10.2006, 00:08 -------------------- ![]() ![]() |
||||||
|
|||||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
сори - не досмотрел - действительно не допускает но весь механизм списка нужно либо делать самому, либо агрегировать от какого-нибудь другого списка. в моей реализации он кстати и агренирован от Vector... Тогда с своей колокольни я разглядел следующий вариант - ImageGroup (тот что модифицируемый) - унаследовать от AbstractList, в него положить Vector - который и будет в себе держать список. А для возврата немодифицируемых списков использовать вариант, предложенный LSD - создавать тот же Vector и после заполнения возвращать через Collections.unmodifiableList()... а что можно сделать с сохранением/восстановлением? она в Main показана через сериализацию... но есть ощущение что здесь можно подправить... |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Сериализация объектов в XML Добавлено @ 14:39 А по поводу сохранения в произвольное место. Сделай интерфейс
И создай класс, который будет сохранять объекты из списка используе переданный Serializator. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
cпасибо
в статье сериализуемые классы не применяют Serializable. для XMLEncoder/XMLDecoder это не обязательно? |
|||
|
||||
| LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Не обязательно, главное чтобы они соответсвовали спецификации JavaBeans. Добавлено @ 15:52 Да и еще, по поводу твоего кода:
это есть не здорово. Если были переданы некорректные данные, программист никак об этом не узнает. В таких случаях принято выбрасывать исключение:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
всем гуру спасибо за помощью
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Заходи еще
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| NotGonnaGetUs |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 25.2.2005 Где: Москва Репутация: 4 Всего: 12 |
Видя массовое дублирование кода
использование самописных листов, игнорирование ошибок в формате данных, использование констант вместо enum, реализацию наследования при которой класс родитель использует сведени о классе потомке (ItemGroup, List) (кстати, в наследовании у нас мегапрофи w1nd), не знание стандартных библиотек
деление на ноль
отсутствие решения для пункта "возможность расширения системы дополнительным способом сохранения данных", организацию кода, при которой любые изменения в постановке задачи приводят к тотальной модификации всего кода и склонность к излишнему усложнению кода, я бы на месте дававшего тестовое задание хорошенько подумал бы: а стоит ли давать настоящее задание??? Это сообщение отредактировал(а) NotGonnaGetUs - 28.10.2006, 20:27 |
||||||
|
|||||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
-------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Правила форума "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. |