2022년 정리7

조용휘·2023년 1월 22일
0

2022

목록 보기
7/10

학습 내용

Before Mission

객체를 객체스럽게

getter를 사용하는 대신 객체에 메시지를 보내자.

https://tecoble.techcourse.co.kr/post/2020-04-28-ask-instead-of-getter/

‘자바 빈 설계 규약’에 따르면

  1. 자바 빈 클래스 설계 시, 클래스의 멤버변수의 접근 제어자는 private 여야 한다.
  2. 모든 멤버변수에 대해 get, set 메소드가 존재해야 한다.
  3. get 메소드는 매개변수 x, set 메소드는 하나 이상 존재해야 한다.

객체지향 프로그래밍은 객체가 스스로 일을 하도록 하는 프로그래밍이다. getter는 그 객체가 일을 하는게 아니다. 로직을 갖고 있는 형태도 아니고, 커뮤니케이션이 일어나지도 않는다.

객체스럽지 못하다

<추가 정보> 디미터 법칙 : 객체간의 연결이 길어질수록 불안정해진다. (train werck)

  1. 상태를 가지는 객체를 추가했다면 객체가 제대로 된 역할을 하도록 구현해야 한다.
  2. 객체가 로직을 구현하도록 해야한다.
  3. 객체에 메시지를 보내 일을 하도록 하자.

Collection 인터페이스를 사용하는 경우 외부에서 getter 메서드로 얻은 값을 통해 상태값을 변경할 수 있다.

→ Collections.unmodifiableList()와 같은 Unmodifiable Collection을 사용해 외부에서 변경하지 못하도록 하는 것이 좋다.

테스트하기 어려운 코드 공략

https://tecoble.techcourse.co.kr/post/2020-05-07-appropriate_method_for_test_by_parameter/

도메인 모델링

1장 도메인 모델 시작 - Incheol's TECH BLOG (gitbook.io)

Stream API

map, trim, max, compareTo, get

클래스를 final 화.. 신기하다.

패키지 변경시 커밋 내용? Chore.

During Mission

Nested Test

junit5 @Nested 계층구조로 테스트코드 작성하기 (tistory.com)

정규식

[Java] 정규표현식 사용법 및 예제 - Pattern, Matcher (tistory.com)

Test Case중 Null값(””)을 넣으면 예외 처리가 이루어지지 않는다.

알고보니 Null 값은 ==로 하면 안되고, Objects.equals 로 해주어야 한다!!

예외 처리한 부분부터 다시 시작…?

attempt나 예외 처리부분 재시작 기능은 어떻게 구현하지?

랜덤 생성 부분에 대한 테스트는 어떻게?

bridgeNumberGenerator 부분 테스트는 어떻게 해야할까? 나중에 리펙토링해보자.

https://www.slipp.net/questions/557

IOSTREAM

[프로그래머스] 자바 중급 - IO / stream, reader, writer (velog.io)텍스트

profile
Progress Gradually, Never Stop

0개의 댓글