Есть такой быдлокод (моего авторства :) ):
if(e.attribute(«get») == «statement_serial») {
drawElement(e, getStatement()->getStatementSerial(), fontFamily, fontSize);
} else if(e.attribute(«get») == «statement_number») {
drawElement(e, getStatement()->getStatementNumber(), fontFamily, fontSize);
} else if(e.attribute(«get») == «notification_serial») {
drawElement(e, getStatement()->getNotificationSerial(), fontFamily, fontSize);
} else if(e.attribute(«get») == «notification_number») {
drawElement(e, getStatement()->getNotificationNumber(), fontFamily, fontSize);
} else if(e.attribute(«get») == «assured_fio») {
drawElement(e, getStatement()->getAssuredFio(), fontFamily, fontSize);
} else if(e.attribute(«get») == «assured_address_index») {
drawElement(e, getStatement()->getAssuredAddressIndex(), fontFamily, fontSize);
} else if(e.attribute(«get») == «assured_address») {
drawElement(e, getStatement()->getAssuredAddress(), fontFamily, fontSize);
} else if(e.attribute(«get») == «assured_phone») {
drawElement(e, getStatement()->getAssuredPhone(), fontFamily, fontSize);
} else if(e.attribute(«get») == «apartment_address_index») {
drawElement(e, getStatement()->getApartmentAddressIndex(), fontFamily, fontSize);
} else if(e.attribute(«get») == «apartment_address»){
drawElement(e, getStatement()->getApartmentAddress(), fontFamily, fontSize);
}
Поясню в чём суть: есть XML'ный тег, который говорит, мол, нарисуй такой-то элемент, информацию возьми из параметра «get». Далее проходим ифами и, если название совпало, получаем информацию из соответствующего метода класса Statement.
Собственно вопрос: можно ли как-то уйти от if else и написать что-то более изящное?