JAVA

원시값, 문자열 포장

gajy 2021. 5. 25. 22:18
728x90

원시값과 문자열을 포장한다는 것의 포인트는 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. 하지만 이와같이 하면 새로운 인스턴스를 생성하므로 성능이 떨어질 수 있다고 생각되면 아래와 같이 mutable하게도 가능하다.

하지만 인스턴스가 많이 생성되는 경우가 아니라면 위와 같이 immmutable하게 생성하는 것을 고려해보자.

package game.core;

public class Position {
    private int postion;

    public Position() {
        this(3);
    }

    public Position(int postion) {
        this.postion = postion;
    }

    public Position move() {
        this.postion ++;
        return this; //mutable한 객체를 return 한다.
    }
}
728x90