생성패턴(객체가 생성, 변경되어도 프로그램 구조에 영향받지 않도록)
-
싱글톤 패턴(Singleton)
- 클래스 내에 인스턴스 하나만 생성한다.
- 하나의 객체를 생성하면 어디서든 참조할 수 있고, 여러 프로세스가 동시에 참조할 수 없다.
- 불필요한 메모리 낭비가 없다.
-
추상팩토리 패턴(Abstract Factory)
- 클래스에 의존하지 않고 인터페이스를 통해서 연관되는 객체들의 그룹으로 생성해 추상적으로 표현한다.
- 연관된 서브 클래스를 묶어 한번에 교체가 가능
-
빌더 패턴(Builder)
- 인스턴스를 건축하듯이 조합하여 객체를 생성한다.
-
팩토리 메소드 패턴(Factory Method)
- 객체 생성을 서브 클래스에서 처리하도록 분리해 캡슐화한 패턴이다.
-
프로토타입 패턴(Prototype)
- 원본 객체를 복제하는 방법으로 객체를 생성한다.
구조 패턴(클래스나 객체를 조합해 더 큰 구조로 만들 수 있게 하는 패턴들)
- 어댑터(Adapter)
- 인터페이스를 다른 클래스가 이용할 수 있도록 변환 해주는 패턴
- A 인터페이스의 a 함수를 구현해야하는데,,, B인터페이스의 b 함수에 그게 구현 되어있을때 => 그 사이를 변환해서 이어주는 경우
- 브리지(Bridge)
- 구현부에서 추상층을 분리해 서로 독립적으로 확장하도록 구성한 패턴
- 컴포지트(Composite)
- 데코레이터(Decorator)
- 퍼싸드(Facade)
- 플라이웨이트(Flyweight)
- 인스턴스가 필요할 때마다 매번 생성하지 않고, 가능한 공유해서 사용해 메모리를 절약하는 패턴
-다수의 유사 객체 생성할때 유용
- 프록시(Proxy)
- 사용하기 어려운 객체가 있을 때
- 우선 대리인(대리 인터페이스)이 먼저 수행하고, 그 객체에 접근할 수 있거나 꼭 접근해야만 할때 실제 객체가 수행하도록 하는 패턴
행위 패턴(클래스나 객체들이 서로 상호작용하거나 책임분배하는 방법을 정의하는 패턴들)
결합도를 최소화하도록 도와준다.
-
책임 연쇄(Chain of Resposibility)
-
커맨드(Command)
- 요청 자체를 객체의 형태로 저장하여 재사용하는 방식의 패턴
-..?
-
인터프리터(Interpreter)
-
반복자(Iterator)
-
중재자(Mediator)
- 특정 이벤트에 반응해서 관련된 다른 클래스들에 알려준다!
-
메멘토(Memento)
-
오브서버(Observer)
-
상태(State)
- 객체 상태(ex. On, Off)에 따라 동일한 동작을 다르게 처리
- 같은 인터페이스를 On, Off(상태)에 각자 implements해 동작 처리
-
전략(Strategy)
- 여러 방법들을 a,b,c 등으로 정하고 필요할 때 원하는 전략을 사용하는 패턴
- 옵션들마다 행동을 모듈화해서 독립적으로 작동하고 상호 교체 가능하게 만드는 것
- 같은 인터페이스를 a,b,c 에 각자 implements해서 선택해 사용하는 식으로 구현할 수 있음
-
템플릿 메소드(Template Method)
- 정해진
- 공통된 절차를 효율적으로 코드를 작성하게 해준다.
- 정해진 상속 형식 : 메인 메소드- 세부 메소드
-
방문자(Visitor)
https://refactoring.guru/design-patterns