Хорошо, из-за плохой конфигурации на стороне сервера Ответ У меня возникли проблемы с поиском эффективного способа написания кода.
Поскольку пример, который я пытаюсь передать, довольно сложный, я попытаюсь использовать пример реальной жизни, чтобы помочь.Ищете правильный шаблон проектирования
Так что скажем, что я отвечаю за программу спортивных наград, и я пытаюсь создать «страницу лучших спортсменов». На странице будут показаны лучшие мужские и женские спортсмены из категории из трех видов спорта; бейсбол, баскетбол и футбол. Твист к этому заключается в том, что может быть один победитель мужского пола, а не победитель женского пола, наоборот, или вообще нет победителей. Кроме того, женщина может быть только бейсболистом или баскетболистом, в то время как мужчина может быть либо из трех, либо как баскетболистов, так и футболистов. Нет никакой комбинации бейсбола ни с чем другим. Наконец, если есть мужчина и женщина, женщина должна быть показана первой. Все три категории имеют разные атрибуты, например, футбол имеет атрибут «tds = 43» по сравнению с бейсболом «Homeruns = 32».
Так путаница вступает в игру с ответом сервера:
<player>
<baseballList>
<baseball
name="Adam"
sex="male"
HomeRuns="32"
reward="True"/>
</baseballList>
<basketballList>
<basketball
name="John"
sex="male"
Points="322"
reward="False"/>
<basketball
name="Sandra"
sex="female"
Points="332"
reward="True"/>
</basketballList>
<footballList>
<football
name= doug
Touchdowns= 33
sex=male
reward="false"/>
</footballList>
</player>
(если имя игрока соответствует как для футбола и баскетбола и мужчины, когда вы бы объединить 2) Как вы видите ответ отправляет обратно игроков, которые не представляют интереса (не спрашивайте, почему), которые я должен отфильтровать, а также не объединяет данные, когда у игрока есть несколько видов спорта. Итак, для моего подхода у меня есть обработчик xml-обработчика, который отправляет xml указанному обработчику «Игроков». Какой будет выглядеть примерно так:
public class PlayerHandler implements XmlHandler {
private static PlayerHandler handler = new PlayerHandler();
private PlayerHandler() {
}
public static PlayerHandler getInstance() {
return handler;
}
public void load(String localName, String qName, Attributes attributes) {
if (localName != null && attributes != null) {
if (localName.equalsIgnoreCase("football")||localName.equalsIgnoreCase("baseball")||localName.equalsIgnoreCase("basketball")) {
Player player = new Player();
if (localName.equalsIgnoreCase("football"))
player.category = "football"
player.TouchDowns=attributes.getValue("TouchDowns");
else if (localName.equalsIgnoreCase("baseball"))
player.HomeRuns=arrtibutes.getValue("HomeRun");
player.category = "baseball"
else{
player.category = "basketball";
player.Points=attributes.getValue("Points");}
player.sex=attributes.getValue("sex");
player.name=attributes.getValue("name");
}
playerSorter.addPlayer(player);}}
Я создал один файл класса для объектов:
public class Player implements Serializable{
public String category;
public String rewards;
public String TouchDowns;
public String Points;
public String HomeRuns;
public String sex;
public String Name;
}
Я делаю все мои сортировки с классом под названием «playerSorter» с методом addPlayer(), что заполняет список только в том случае, если указанные критерии удовлетворяются, тогда у меня есть метод getPlayers(), который вызывает мой метод checkForAthleteWithInTwoSports() (проходит и видит, является ли этот игрок как в баскетболе, так и в футболе), чем возвращает отсортированный список с женщиной показывая первое (если применимо). Метод getPlayers() вызывается с моей главной страницы, а затем устанавливает его в класс адаптера. Лучший ответ xml сделает задачу, подобную этой МНОГО, проще, однако это не так, и я хочу найти более эффективный способ сделать это. Если бы кто-нибудь мог помочь мне найти хороший шаблон дизайна, чтобы решить эту проблему или какие-либо советы, которые я бы очень ей признал. (Кроме того, категории имеют больше атрибутов, чем просто «HomeRuns, points или touchdowns», просто пытающиеся упростить.)
Wow, love it. Иногда я в конечном итоге удаляюсь от подхода типа ООП = (спасибо большое за то, что играю в мои фиктивные данные и трачу время, чтобы помочь мне!) Извините, что я не могу проголосовать за вас в данный момент (недостаточно репутации) – user1823974
@ user1823974: проблем нет! Рад помочь :) –