2013-09-17 2 views
0

Мне нужно проверить, удовлетворяет ли объект объекта определенным правилам. Мой объект - это телефонный звонок, мне нужно проверить, удовлетворяет ли он определенным критериям или не следовать последующей логике. Пожалуйста, найдите мое решение ниже.Передача одного и того же объекта нескольким разным методам Java

private static boolean isGPRS(CallXCD callXCD){ 

    String serviceName = callXCD.getServiceName(); 
    boolean isGPRS = false; 

    if(serviceName.compareTo("GPRSB")==0) 
    isGPRS = true; 

    return isGPRS; 
} 

private static boolean isVoice(CallXCD callXCD){ 

    String serviceName = callXCD.getServiceName(); 
    boolean isVoice = false; 

    if(serviceName.compareTo("TEL")==0) 
     isVoice = true; 

    return isVoice; 
} 

Тогда я проверю, если isGPRS возвращает истину, я буду делать X. Если isVoice возвращает истину, я буду делать Y. Я не уверен, что я сделал, лучшая практика, потому что я прохожу один и тот же объект несколько раз.

Лучше построить массив булевых элементов и передать объект один раз в одном методе, выполнить все вычисления, затем передать значения в булевский массив. Или это не повлияет на производительность?

+0

Это должно быть в обзоре кода. Если вы отправляете сообщение в CR, добавьте дополнительную информацию, т. Е. что такое CallXCD и как он структурирован. – Bobby

+0

Этот вопрос не соответствует теме, потому что речь идет о просмотре кода. – Bobby

+2

Вы можете использовать ** перечисление ** для хранения различных «типов», которые этот объект может представлять. Я думаю, что это гораздо более читаемый, чем логический массив ... – ppeterka

ответ

2

Ничто из этого не приведет к какой-либо измеримой разнице. Такие тривиальные вещи не повлияют на производительность таким образом, что вы сможете сказать.

Мне было бы интересно, почему вы должны это делать вообще. Почему статические методы? Почему бы не сделать этих членов класса CallXCD и позволить ему просто сказать вам, что это за вещь? Храните все состояние и логику в одном месте.

Почему вы тестируете типы таким образом? Может ли это быть полиморфным? Было создано объектно-ориентированное программирование для устранения такого рода «что я?» if/then/else code.

+0

Спасибо duffymo. Я попробую вашу предложенную практику. Кажется намного лучше – mowienay

Смежные вопросы