디자인패턴이란?
"효율적인 코드를 만들기 위한 방법론"
소프트웨어 개발 방법으로 사용되는 디자인패턴은 과거의 소프트웨어 개발 과정에서 발견한 설계의 노하우를 축적시켜 그 방법에 이름을 붙여서 이후에 재사용하기 좋은 형태로 특정 규약을 만들어서 정리한 것이다.
디자인 패턴은 소프트웨어 설계에 있어 공통적인 문제들에 대한 표준적인 해법과 작명법을 제안하며, 알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식이다.
디자인패턴의 종류
디자인패턴이라는 용어를 처음 제시한 곳은 GoF(Gang of Four)이라 불리는 네명의 컴퓨터 과학 연구자들이 쓴 서적에서부터다. 23가지의 디자인 패턴을 정리하고 각각의 디자인 패턴을 생성(Creational), 구조(Structural), 행위(Behavioral) 3가지로 분류했다.
생성패턴
객체 생성에 관련된 패턴으로 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다.
구조패턴
클래스나 객체를 조합해 더 큰 구조를 만드는 패턴이다. 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 서로 다른 객체들을 묶어 새로운 기능을 제공하는 패턴이다.
행위패턴
객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴이다. 한 객체가 혼자 수행할 수 없는 작업을 여러개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도를 최소화하는것에 중점을 두는 방식이다.
참고
https://gmlwjd9405.github.io/2018/07/06/design-pattern.html
https://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4
'언어 > JAVA' 카테고리의 다른 글
[UML]클래스 다이어그램 (0) | 2022.01.19 |
---|---|
다이아몬드 상속 문제(다중상속의 문제점) (0) | 2022.01.19 |
OOP의 4대 특성 및 5대 원칙 (0) | 2022.01.14 |
람다식(Lambda Expression) (0) | 2021.12.17 |
Stream (0) | 2021.12.16 |