https://github.com/Yooii-Studios/Clean-Code
흔히 클래스 멤버변수를 상수로(final)만들고자 할 때, 클래스 상수(static final)로 만들어준다. - final 변수: 한번 초기화 가능. - final 메서드: 오버라이드하거나 숨길 수 없다. - final 클래스: 상속 불가 - static 멤버 변수(클래스 변수) - static 메서드(클래스 메서드): 오버라이드 불가, 상속클래스에서 보이지 않음. - static 블록: 클래스가 초기화 될 때 실행되고, main()보다 먼저 실행 - static 클래스 - static import 왜 static final이냐? ==> 어차피 모든 클래스 인스턴스에서 똑같이 서야할 값이기 때문에 클래스 레벨에서 한번만 잡아서 하나의 메모리 공간을 계속해서 사용하면 되기 때문 (그렇지 않으면 인스턴스가..
1. 아래와 같이 TDD로 테스트하기 어려운 부분을 수정하려고 한다. package game.core; public class Car implements Comparable { ... public void move() { if (getRandomNo() == FORWORD_NUM){ //random 숫자때문에 TDD로 테스트하기가 어렵다. this.position++ } } private int getRandomNo() { Random random = new Random(); return random.nextInt(MAX_BOUND); } ... } 2. 아래와 같이 값을 주입받는 식으로 수정 수 있다 기존 메서드를 오버로딩해서 사용 할 수도 있다. 점차적으로 기존 코드를 삭제해가면서 진행 할 수도 있다..
원시값과 문자열을 포장한다는 것의 포인트는 immutable하게 만든다는 것이다. 추가적으로, 역할들을 나눠가지게 되기 때문에 TDD하기 쉬워진다. 1. immutable 한 객체를 return 하는 방법 package game.core; public class Position { private final int postion; public Position() { this(3); } public Position(int postion) { this.postion = postion; } public Position move() { return new Position(postion + 1); //immutable한 객체를 return 한다. } } 2. 하지만 이와같이 하면 새로운 인스턴스를 생성하므로 성능이..
- Total
- Today
- Yesterday