소프트웨어 개발 과정에서 발견된 설계 방법에 이름을 붙여 재사용하기 좋은 형태로 특정 규약을 만들어 정리한 것소프트웨어 설계에 있어 공통적인 문제에 대한 표준적인 해법, 작명법을 제안하고 특정한 상황에서 구조적인 문제를 해결하는 방식효율적인 코드를 만들기 위한 방법론객
객체를 하나만 생성하도록 하며, 생성된 객체를 어디서든지 참조할 수 있도록 하는 패턴생성 패턴 중 하나static 블럭 사용시 클래스가 로딩될 때 한번만 실행인스턴스가 사용되는 시점이 아닌 로딩 시점에 실행된다.static 방법을 개선하여 클래스 로딩 시점이 아닌 인스
실행 중에 알고리즘을 선택할 수 있게 하는 디자인패턴특정 컨텍스트에서 알고리즘을 별도로 분리특정한 기능을 수행하는데에 있어 다양한 알고리즘이 적용될 수 있는 경우, 이 다양한 알고리즘을 별도로 분리하는 설계 방법행위 패턴 중 하나손님이 오는 시간대, 물건 신선도에 따라
특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복 최소화에 유용객체지향 언어로 개발을 하다보면 무의식적으로 사용하
조건에 따라 객체를 분기하여 생성하는 것을 직접하지 않고 팩토리라는 클래스에 위임하는 것객체 생성처리를 서브 클래스로 분리하여 처리하도록 하는 패턴여러개의 서브 클래스를 가진 슈퍼 클래스가 입력에 따라 자식클래스 중 하나의 인스턴스를 반환생성 패턴 중 하나Factory