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

Код: java
1.
2.
3.
4.
5.
6.
7.
dbCallableStatement = 
                dbOracleConnection.DataBaseConnection.prepareCall("{call EMESSAGE_SEND.SMS_FEEDBACK2(?,?,?,?,?)}");
        dbCallableStatement.setInt(1, EMSG); //EMSG
        dbCallableStatement.setInt(2, 1); //FEEDBACK_STEP
        dbCallableStatement.setInt(3, smsFeedback.GetMessageStatusID()); //SMS_STATUS
        dbCallableStatement.setString(4, smsFeedback.GetMessageID()); //SMS_ID
        dbCallableStatement.setInt(5, smsFeedback.GetSMScount()); //SMS_COUNT



Класс списка объектов

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class Feedback {
    List<FeedbackMessage> messages = new LinkedList<>();           
    
    
public String GetMessageID() {
    FeedbackMessage objFeedbackMessage = messages.get(0);
    return objFeedbackMessage.GetMessageID();
}

public int GetSMScount() {
    FeedbackMessage objFeedbackMessage = messages.get(0);
    return objFeedbackMessage.GetSMScount();
}

public int GetMessageStatusID() {
    FeedbackMessage objFeedbackMessage = messages.get(0);
    return objFeedbackMessage.GetStatusID();
}

}



Ответ по сообщению

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class FeedbackMessage {
    private String to;
    private FeedbackMessageStatus status;
    private int smsCount;
    private String messageId;
    
public FeedbackMessage(String to, FeedbackMessageStatus status, int smsCount, String messageId) {
    this.to = to;
    this.status = status;
    this.smsCount = smsCount;
    this.messageId = messageId;
}

public String GetMessageID() {
    return messageId;
}

public int GetSMScount() {
    return smsCount;
}

public int GetStatusID() {
    return status.GetID();
}

}



Класс статуса сообщения

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class FeedbackMessageStatus {
    private int groupId;
    private String groupName;
    private int id;
    private String name;
    private String description;
    
public FeedbackMessageStatus(int groupId, String groupName, int id, String name, String description) {
    this.groupId = groupId;
    this.groupName = groupName;
    this.id = id;
    this.name = name;
    this.description = description;
}
    
public int GetID() {
    return id;
}

}



Java только осваиваю, помогите понять на сколько этот код адекватный, обработка исключений не в счет.

Первое что не нравиться это "сквозной" метод получения значения FeedbackMessageStatus.id как можно сократить количество методов?
...
Рейтинг: 0 / 0
Помогите сделать код менее уродским.
    #39404791
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaxExterminatusкак можно сократить количество методов
какие типы входные в хранимке?
PaxExterminatus
Код: java
1.
EMESSAGE_SEND.SMS_FEEDBACK2


подать туда не объкты-классы, а простые Java типы.
...
Рейтинг: 0 / 0
Помогите сделать код менее уродским.
    #39404795
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaxExterminatus Java только осваиваю, помогите понять на сколько этот код адекватный, обработка исключений не в счет.

Первое что не нравиться это "сквозной" метод получения значения FeedbackMessageStatus.id как можно сократить количество методов?
Как новичок новичку могу сказать, что в Java есть устоявшиеся стандарты написания кода.
Рекомендую придерживаться их иначе в дальнейшем вы можете получить маловразумительные ошибки на ровном месте.
Все приватные переменные и объекты
Код: java
1.
2.
3.
4.
5.
    private int groupId;
    private String groupName;
    private int id;
    private String name;
    private String description;


должны иметь стандартные геттеры и сеттеры
Код: java
1.
2.
3.
public int GetID() {
    return id;
}


даже если это вам не очень нравится.
...
Рейтинг: 0 / 0
Помогите сделать код менее уродским.
    #39404804
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaxExterminatus, да все в принципе в рамках допустимого. Пара замечаний -

1) методы желательно называть с маленькой буквы вместо GetMessageID привычнее видеть getMessageID
2) Если напрягает постоянно писать геттеры\суттеры и дефолтные конструкторы, посмотрите на Lombok, он сам все сгенерит
3) в классе Feedback я бы сделал helper метод
Код: java
1.
2.
3.
   private FeedbackMessage first() {
      return messages.get(0);
}


а в остальных методах вызывал бы его first().GetMessageID()

Или даже лучше так -

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
FeedbackMessage message = smsFeedback.first();
dbCallableStatement = 
                dbOracleConnection.DataBaseConnection.prepareCall("{call EMESSAGE_SEND.SMS_FEEDBACK2(?,?,?,?,?)}");
        dbCallableStatement.setInt(1, EMSG); //EMSG
        dbCallableStatement.setInt(2, 1); //FEEDBACK_STEP
        dbCallableStatement.setInt(3, message .GetMessageStatusID()); //SMS_STATUS
        dbCallableStatement.setString(4, message .GetMessageID()); //SMS_ID
        dbCallableStatement.setInt(5, message .GetSMScount()); //SMS_COUNT



А те методы из Feedback вообще убрал. зачем они?
...
Рейтинг: 0 / 0
Помогите сделать код менее уродским.
    #39404812
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Код: java
1.
2.
3.
4.
5.
        dbCallableStatement.setInt(1, EMSG); //тип int
        dbCallableStatement.setInt(2, 1); //тип int
        dbCallableStatement.setInt(3, smsFeedback.GetMessageStatusID()); //тип int
        dbCallableStatement.setString(4, smsFeedback.GetMessageID()); //тип String
        dbCallableStatement.setInt(5, smsFeedback.GetSMScount()); //тип int



Все типы являются простыми, некоторые передаются методами.
...
Рейтинг: 0 / 0
Помогите сделать код менее уродским.
    #39404814
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,

Спасибо, буду применять )
...
Рейтинг: 0 / 0
Помогите сделать код менее уродским.
    #39404817
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
public class Feedback {
    List<FeedbackMessage> messages = new LinkedList<>();           
    
    public FeedbackMessage first() {
         return messages.get(0);
    }
}

@Data @DefaultConstructor
public class FeedbackMessage {
    private String to;
    private FeedbackMessageStatus status;
    private int smsCount;
    private String messageId;

   public int getStatusId(){
       return status.getId();
}
}

@Data @DefaultConstructor
public class FeedbackMessageStatus {
    private int groupId;
    private String groupName;
    private int id;
    private String name;
    private String description;
}

FeedbackMessage message = smsFeedback.first();
dbCallableStatement = 
                dbOracleConnection.DataBaseConnection.prepareCall("{call EMESSAGE_SEND.SMS_FEEDBACK2(?,?,?,?,?)}");
        dbCallableStatement.setInt(1, EMSG); //EMSG
        dbCallableStatement.setInt(2, 1); //FEEDBACK_STEP
        dbCallableStatement.setInt(3, message .getStatusId()); //SMS_STATUS
        dbCallableStatement.setString(4, message .getMessageID()); //SMS_ID
        dbCallableStatement.setInt(5, message .getSMScount()); //SMS_COUNT
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите сделать код менее уродским.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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