TIL3

pepe·2025년 11월 7일

Controller Service Repository

각 계층마다 맡은 역할이 있고 서로 침범해서는 안된다.
고객은 점원만 알고 있다.
점원은 고객에게 응답만 할 수 있다.
(== 점원은 고객을 모른다)
요리사는 점원에게 응답만 할 수 있다.
(== 요리사는 점원을 모른다.)

Client: Controller만 알고 있다.
점원은 요리사만 알고있다.
Controller: Service만 알고있다.

향상된 switch

  • 기존 switch 의 문제

  1. break 꼭 써야함

  2. case 마다 중괄호, break 써야함

  3. 값을 반환할 수 없음

    
    String grade = "A";
    int score;
    
    switch (grade) {
        case "A":
        		score = 90;
        		break;
        case "B":
        		score = 80;
              break;
        case "C":
        		score = 70;
              break;
        default:
        		score = 0;
    }
    
    		```
      

Java 12~14에 switch를 개선한 기능이 도입됨

  • 달라진 점

  1. -> 사용

  2. 값 반환 가능

  3. case를 한 줄로 묶을 수 있음

    String grade = "A";
    
    int score = switch (grade) {
        case "A" -> 90;
        case "B" -> 80;
        case "C" -> 70;
        default -> 0;
    };
    
    System.out.println(score);
    
    // ========================================
    
    String day = "SAT";
    
    String result = switch (day) {
        case "MON", "TUE", "WED", "THU", "FRI" -> "평일";
        case "SAT", "SUN" -> "주말";
        default -> "잘못된 입력";
    };
    	
      // ========================================
    System.out.println(result);
    int num = 2;
    String result = switch (num) {
        case 1 -> "One";
        case 2 -> {
            System.out.println("Two selected!");
            yield "Two";   // 값을 반환하는 키워드
        }
        default -> "Other";
    };
    // result 변수에 "Two"가 들어감
    

    마지막에 yeild는 switch 포현식 case 내부에서 쓸 수 있으며,
    해당 case 결과값을 switch 포현식으로 반환한다.
    switch 내부에서만 쓰는 return같은 것

profile
pepe

0개의 댓글