본문 바로가기

java18

1. 매직넘버를 상수로 바꾸기 매직 넘버를 사용할 때 문제점 의미를 알기 어려움. 수정하기 어려움 상수로 치환하여 리펙토링 한다. 리펙토링 단계 매직넘버를 기호 상수로 치환 1. 기호 상수 선언, 매직 넘버를 기호 상수로 치환, 기호 상수에 의존하는 다른 매직 넘버를 찾아 기호 상수로 바꿈 2. 테스트 리팩토링하여 얻을 수 있는 효과 1. 단순 숫자보다 enum같은 의미를 가지는 String을 사용하여 코드 이해 하기가 수월하다. 2. enum을 사용함으로서 메서드 호출할 때 정의되지 않은(잘못된) 값으로 호출 시, 컴파일 단계에서 오류 탐지 가능하다. 리팩토링 전 코드 package magicnumber.before; public class Robot { public String name; public Robot(String nam.. 2023. 2. 6.
리팩토링이란 리펙토링 외부에서 보는 프로그램의 기능은 변하지 않고 프로그램 내부 구조를 개선하는 것 프로그램의 동작이 변하지 않음을 증명하기 위해 유닛테스트가 필요하다 테스트 -> 리펙토링 -> 테스트 디버깅과 기능 추가는 리펙토링이 아니다. 리펙토링의 여러 방법 메서드나 클래스가 겹치는 경우 -> 분리 메서드나 클래스의 기능이 너무 많고 긴 경우 -> 메서드와 클래스를 따로 추출한다. 변수, 메서드, 필드명, 패키지명등이 안맞는 경우 -> 이름을 이해하기 쉽게 변경 public으로 선언된 것이 너무 많은 경우 -> 인스턴스 이름을 숨기고 싶을때는 팩토리 메서드 등의 방법 활용 switch문이나 if-else if 문의 남용으로 여러 분류조건이 반복되는 경우 클래스화 검토 -> 전략패턴이나 상태 패턴으로 변경 가능 .. 2023. 2. 6.
어뎁터 패턴 (adapter pattern) 어뎁터 패턴이란? 서로 다른 인터페이스를 중간에서 연결해주는 기능을 한다 기존에 사용중인 인터페이스들을 중간에 맞춰서 적용해 주는 역할로 사용한다. ex : 110v, 220v 돼지코 역할 2023. 2. 3.
리팩토링 대상 발견하는 법, 조건 정리 1. 코드에 반복적인 if - else 나 switch - case 조건이 있다면 클래스로 분리한다. 2023. 2. 3.