안녕하세요! Joy 입니다.
오늘은 SOLID 원칙에 대해서 복습할 겸 간단히 정리해보려고 합니다.
요새 몸이 좀 안좋아서 HIG도 알고리즘도 포스팅도 못하고
매일 혼자 공부해서 Github 업로드만 하고 있었어요...흑흑
알고리즘 정리하면서 디자인패턴도 함께 복습하고 있었기 때문에..
오늘은 디자인패턴 글 쓸거에요.. (사실 알고리즘이 포스팅하는데 더 많은 시간이 걸려요..)
아무튼~ 시작해보겠습니다리
디자인 패턴
- 디자인 패턴은 "아이디어" 이다. 어떠한 구현을 말하는 것은 아님
- 프로젝트에 반드시 적용해야 하는 사항은 아니지만, 추후 재사용성이나 유지보수시 발생할 문제를 예방하기 위해 만들어진 것
SOLID (객체지향 설계 원칙)
- SRP : Single Responsibility Principle
- 하나의 클래스는 하나의 역할만 담당해야한다.
- OCP : Open-Close Principle
- 확장(상속)에는 열려있고 수정에는 닫혀있어야 한다.
- LSP : Liskov Substitution Principle
- 자식이 부모의 자리에 항상 교체될 수 있어야 한다.
- ISP : Interface Segragation Principle
- 인터페이스가 잘 분리되어서 클래스가 꼭 필요한 인터페이스만 구현할 수 있도록 해야한다.
- DIP : Dependency Inversion Property
- 상위 모듈이 하위 모듈에 의존해서는 안된다.
- 둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존해서는 안된다.
디자인 패턴의 분류
디자인 패턴은 세가지로 분류할 수 있다.
- 생성 패턴 : 객체의 생성 방식을 결정한다.
- 예시 : 팩토리메소드패턴, 추상패턴, 싱글톤패턴 등
- 구조 패턴 : 객체간의 관계를 조직한다.
- 예시 : 어댑터패턴, 브릿지패턴, 컴포지트패턴, 데코레이터패턴, Facade패턴 등
- 행위 패턴 : 객체의 행위를 조직, 관리, 연합한다.
- 예시 : Iterator, 옵저버패턴, 스트래티지패턴, 템플릿메소드패턴 등
간단하게 일단 개념만 잡아봤어요!
틈나는대로 알고리즘도 디자인패턴도 열심히 포스팅하리라 다짐하며
오늘도 읽어주셔서 감사합니다!
반응형
'💌 Design Pattern' 카테고리의 다른 글
[Design Pattern] Observer Pattern (옵저버패턴) with Swift (0) | 2022.02.22 |
---|---|
[Design Pattern] Factory Method Pattern (팩토리메소드패턴) with Swift (0) | 2022.02.18 |
[Design Pattern] Template Method Pattern (템플릿 메소드 패턴) with Swift (0) | 2022.02.16 |
[Design Pattern] Singleton Pattern (싱글톤패턴) with Swift (0) | 2022.02.14 |
[Design Pattern] Adapter Pattern (어댑터패턴) with Swift (0) | 2022.02.13 |