220711강의 필기
싱글턴 패턴
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);
Leave a comment