less than 1 minute read

싱글턴 패턴

public class Singleton {

    private static Singleton instance = new Singleton();
    
    private Singleton() {
        // 생성자는 외부에서 호출 못하게 private 으로 지정해야 한다.
    }

    public static Singleton getInstance() {
        return instance;
    }

    public void say() {
        System.out.println("hi, there");
    }
}

최초 클래스가 JVM에 의해 메모리에 로드가 될 때, 클래스로서 하나의 객체가 생성됨.

private static Singleton instance = new Singleton();

getInstance()를 통해 내부에 생성되어진 인스턴스를 리턴한다

public static Singleton getInstance() {
        return instance;
    }

이로써 프로그램 내에서 객체가 한개만 생성된다는 것을 보장할 수 있다.

CRUD는 객체 하나로만 굴릴 수 있으므로.(상태를 가지지 않는 객체)(싱글톤 사용 굳)

BoardItem 은 하나로만 굴릴 수 없다.(상태를 가지는 객체) (ex. A라는 사람을 만들고 B라는 사람도 만들었을 때 이 두 객체는 서로 다른 Item이다.)

Spring에서

@Repository, @Controller, @Service 에 마우스를 올려보았을 때 componenet가 있는 것을 알 수 있는데ㅡ

component는 Spring 이 알아서 싱글톤으로 처리한다는 뜻.

@Autowired 를 통해

Spring 이 하나있는(싱글톤이 적용된) BoardItemRepository 객체를

@Autowired
BoardItemRepository boardItemRepository;

boardItemRepository에 찾아서 넣어준다.

그리하여 new로 생성하고 연결하지 않아도 된다.

중복코드를 제거하는 템플릿메소드

템플릿 메소드

DAO(Repository) 단에서 최대한 중복코드를 제거하는 기계적인 프로그래밍.

int add(int a, int b){
	return a+b;
}
int sub(int a, int b){
	return a-b;
}
template(add,2,3);

Updated:

Leave a comment