본문 바로가기

분류 전체보기590

03. null 객체 사용 null 객체 사용시 문제점 객체의 null 여부를 확인하는 코드가 너무 많은 경우 null 체크 적다면 리팩토링 안 해도 됨 아무것도 안하는 객체를 만들어 사용함으로 null 확인 코드를 줄인다. 리펙토링 단계 null 객체 클래스를 작성한다. 기존에 null을 체크하는 클래스의 하위 클래스로 생성 해당 클래스에 isNull() 이라는 null 체크하는 메서드 구현, 기존 클래스는 false, null 클래스는 true로 반환하게 한다. null 치환하기 null 코드 부분을 isNull() 메서드로 치환한다. null 객체 클래스를 재정의하여 조건 판단진행 isNull() 메서드를 사용하는 제어문을 찾아서 다음과 같이 수정 AS-IS package introducenullobject.before; p.. 2023. 2. 7.
02. 제어를 위한 플래그 삭제 SimpleDataBase 예제 리펙토링 1단계 후 (이상한 변수명 바꾸기) 코드를 날린다고 해서 모든 변수들을 안 쓰는 것이 아니기 때문에 이상한 변수명 바꾸는 작업 수행하여야 하고, 롤백 필요한 케이스가 필요할 수 있기 때문에 단계를 나눠서 리팩토링을 진행해야 한다. AS-IS package removecontrolflag.before; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class SimpleDat.. 2023. 2. 7.
1. 매직넘버를 상수로 바꾸기 매직 넘버를 사용할 때 문제점 의미를 알기 어려움. 수정하기 어려움 상수로 치환하여 리펙토링 한다. 리펙토링 단계 매직넘버를 기호 상수로 치환 1. 기호 상수 선언, 매직 넘버를 기호 상수로 치환, 기호 상수에 의존하는 다른 매직 넘버를 찾아 기호 상수로 바꿈 2. 테스트 리팩토링하여 얻을 수 있는 효과 1. 단순 숫자보다 enum같은 의미를 가지는 String을 사용하여 코드 이해 하기가 수월하다. 2. enum을 사용함으로서 메서드 호출할 때 정의되지 않은(잘못된) 값으로 호출 시, 컴파일 단계에서 오류 탐지 가능하다. 리팩토링 전 코드 package magicnumber.before; public class Robot { public String name; public Robot(String nam.. 2023. 2. 6.
[IDE] 이클립스 Editor does not contain a main type 에러 해결 에러 문구(error code) : editor does not contain a main type 에러 원인 : 이클립스 프로젝트에 컴퓨터 개발환경과 다른 jdk가 설정이 되어 있었음. 아래 이미지처럼 프로젝트의 build, compile jdk를 각자 환경에 맞는 jdk 버전으로 변경하고, 프로젝트 빌드하여 실행하면 정상 동작 함 2023. 2. 6.