https://www.youtube.com/playlist?list=PL93mKxaRDidEhEcufGexy99nAWGesLBch
https://inpa.tistory.com/category/%EB%94%94%EC%9E%90%EC%9D%B8%20%ED%8C%A8%ED%84%B4/GOF
필수 매개변수와 함께 선택 매개변수를 0개, 1개, 2개 .. 받는 형태
(생성자 오버로딩)
매개변수가 없거나 필수 매개변수만 있는 생성자로 객체 생성후
Setter로 넣는 패턴
추상적인거를 상속받아서 구체적인걸
OCP(확장에는 개방적, 수정에는 폐쇄적)적용
DIP(구체적인거 말고 추상적인거에 의존하라)적용
https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%EC%A0%84%EB%9E%B5Strategy-%ED%8C%A8%ED%84%B4-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90
원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴이다.
호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들을 함께 작동해주도록 변환
https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%EC%96%B4%EB%8C%91%ED%84%B0Adaptor-%ED%8C%A8%ED%84%B4-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90
Singleton pattern
싱글톤 패턴이란 단 하나의 유일한 객체를 만들기 위한 코드 패턴이다.
쉽게 말하자면 메모리 절약을 위해, 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 기법을 말한다.
public class PlayerService implements Service {
private PlayerDAO dao;
private PlayerService(Connection connection) {
// 클래스 본인을 만드는 생성자, private라서 다른 곳에서는 사용못함
dao = new PlayerDAO(connection);
}
private static PlayerService instance;
// 클래스 본인 객체 필드
public static PlayerService getInstance(Connection con){
// 이거만 public이라 이걸로만 생성 가능
if (instance == null) {
instance = new PlayerService(con);
}
return instance;
}
.......(메서드).......
}
Builder Pattern