Coding/JAVA

[JAVA] 입출금 리팩토링

민톨이 2024. 8. 18. 22:50
728x90

📋 기존 코드

package method.ex;

public class MethodEx3 {

    public static void main(String[] args) {
        int balance = 10000;

        //입금 1000원
        int depositAmount = 1000;
        balance = depositAmount;
        System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " +balance+"원");

        //출금 2000원
        int withdrawAmount = 2000;
        if(balance>=withdrawAmount){
            balance -= withdrawAmount;
            System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: "+balance+"원");
        } else {
            System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다.");
        }

        System.out.println("최종 잔액: " + balance +"원");
    }
}

 

📋 메서드 호출

package method.ex;

public class MethodEx3Ref {

    public static void main(String[] args) {
        int balance = 10000;

        //입금 1000원
        balance = deposit(balance, 1000);
        //출금 2000원
        balance = withdraw(balance, 2000);

        System.out.println("최종 잔액: " + balance +"원");
    }

    //입금
    public static int deposit(int balance, int amount) {
        balance += amount;
        System.out.println(amount + "원을 입금했습니다. 현재 잔액: "+balance+"원");
        return balance;
    }

    //출금
    public static int withdraw(int balance, int amount){
        if(balance>=amount){
            balance -= amount;
            System.out.println(amount +"원을 출금하였습니다. 현재 잔액: " +balance+"원");
        }else {
            System.out.println(amount + "원을 출금하려 했으나 잔액이 부족합니다.");
        }

        return balance;
    }
}

 

//리팩토링 결과를 보면 main()은 세세한 코드가 아니라 전체 구조를 한눈에 볼 수 있게 되었다 (메서드를 사용함으로써)

//더 자세히 알고자 하면 해당 메서드를 찾아서 들어가면 된다.

//메서드가 분리되어 문제 해결도 용이 - 수정 범위가 한정

//리팩토링을 해서 유지보수 용이 = 메서드 추출

'Coding > JAVA' 카테고리의 다른 글

[JAVA] Class 사용 - 인스턴스 생성  (0) 2024.08.20
[JAVA] Class가 필요한 이유  (0) 2024.08.20
[JAVA] 메서드 호출로 코드 리팩토링  (0) 2024.08.17
[JAVA]메서드 오버로딩  (0) 2024.08.16
[JAVA] 상품 등록 프로그램  (0) 2024.08.15