Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- std::unordered_map
- map
- 리스트
- 차이점
- 스택
- 큐
- vector
- thread
- 벡터
- Queue
- list
- 인프런
- 힙영역
- c#
- 기술면접
- 스택영역
- 프래그멘테이션
- 객체지향
- 알고리즘
- std::map
- static_cast
- rookiss
- 공부
- 해쉬맵
- 반복문
- 자료구조
- 멀티쓰레드
- MonoBehaviour
- 배열
- 트리
Archives
- Today
- Total
호빵의 IT 개발소
[C#] 디자인 패턴 본문
디자인 패턴(Design Pattern)
- 소프트웨어를 설계하면서 자주 발생하는 문제들을 해결하기 위한 해결 방법을 일반화하여 정리
- 디자인 패턴을 이용하여 빠르게 프로그램을 개발할 수 있다.
디자인 패턴 종류
1) 생성패턴(Creational Pattern)
- 객체를 생성하는데 필요한 패턴
- 객체의 생성을 캡슐화하여 전체적인 프로그램 구조에 영향을 주지 않으면서 확장성을 갖게 만드는 패턴
- 팩토리 메서드 패턴(Factory Methods Pattern) / 추상 팩토리 패턴(Abstract Factory Pattern) / 싱글턴패턴(Singleton Pattern) / 빌더 패턴(Builder Pattern) / 프로토타입 패턴(Prototype Pattern)
2) 구조 패턴(Structural Pattern)
- 기존의 객체를 확장하거나 여러개의 객체를 이용하여 더 큰 객체나 구조를 형성하는 패턴
- 어댑터 패턴(Adapter Pattern) / 브릿지 패턴(Bridge Pattern) / 컴포지트 패턴(Composite Pattern) / 데코레이터 패턴(Decorator Pattern) / 퍼사드 패턴(Facade Pattern) / 플라이웨이트 패턴(Flyweight Pattern) / 플록시 패턴(Proxy Pattern)
3) 행동 패턴(Behavioral Pattern)
- 객체나 클래스에서 행동을 묘사하는 패턴
- 하나의 행동이 여러 행동으로 영향을 주던지, 하나의 객체에서 여러 행동을 하는 것과 같은 기능을 하게 됨
- 책임 연쇄 패턴(Chain of Responsibility Pattern) / 커맨드 패턴(Command Pattern) / 인터프리터 패턴(Interpreter Pattern / 이터레이터 패턴(Iterator Pattern) / 미디에이터 패턴(Mediator Pattern) / 메멘토 패턴(Memento Pattern) / 옵저버 패턴(Observer Pattern) / 상태 패턴(State Pattern) / 스트래티지 패턴(Strategy Pattern) / 템플릿 메서드 패턴(Template Method Pattern) / 비지터 패턴(Visitor Pattern)
간단한 패턴 요약
싱글턴 패턴(Singleton Pattern) - 생성 패턴
- 간단하거나 단순한 프로그램을 만들때 유용하게 사용할 수 있는 디자인 패턴
- 하나의 메모리를 공유하여 사용
- 모든 데이터를 전역으로 관리할 수 있어 쉽게 접근 가능
- 무분별하게 객체의 인스턴스가 생성 되는 것을 막아준다.
상태 패턴(State Pattern) - 행동 패턴
- 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있음.
- 상태를 객체화 한 패턴
- 복잡도를 떨어뜨리기 위해 플레이어의 상태를 나눔
팩토리 패턴(Factory Pattern) - 생성패턴
- 부모 클래스에 알려지지 않은 하위 클래스를 생성
- 객체를 만들어 반환하는 함수를 제공, 초기화 과정을 외부에서 보지 못하도록 처리
- 추상 팩토리 패턴(Abstract Factory Pattern) - 동일한 주제의 다른 팩토리를 묶음. 인터페이스를 이용하여 서로 연관되어 있는 객체 생성
- 팩토리 메소드 패턴(Factory Methods Pattern) - 생성 할 객체의 클래스를 국한하지 않고 객체 생성. 클래스의 인스턴스를 만드는 것을 서브 클래스에 맡김
옵저버 패턴(Observer Pattern) - 행동패턴
- 어떤 클래스에서 변화가 일어났을 때 다른 클래스에 통보
책임 연쇄 패턴(Chain of Responsibility Pattern) - 행동 패턴
- 자신이 책임 못 질 것 같으면 책임은 자동으로 연결되어 있는 다음 책임자에게 넘어감
프록시 패턴(Proxy Pattern) - 구조 패턴
- 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공
- 다른 무언가와 이어지는 인터페이스 역할
'CS(전공지식) > 프로그래밍언어' 카테고리의 다른 글
| [C] 포인터 (0) | 2022.06.24 |
|---|---|
| [C/C#] 업캐스팅, 다운캐스팅 (0) | 2022.06.23 |
| [C#] 가비지 컬렉션(GC, Garbage Collection) (0) | 2022.06.22 |
| [C#] 박싱과 언박싱 (0) | 2022.06.21 |
| [C/C#]델리게이트(delegate), 이벤트 (event) (0) | 2022.06.20 |
Comments