Java/디자인패턴

Design Pattern - Overview

728x90

 

1. What is Design Pattern

디자인 패턴은 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론이다.

 

디자인패턴에서 좋은 코드라는것은, "설계적인 관점에서 좋은코드" 를 말한다

 

확장과 수정이 용이하며, 설계 이후에도 추가적인 유지보수 비용이 적게 들어가는것을 디자인패턴에선 좋은 코드라 부른다

 

객체지향적인 관점에서 볼 때, 이를 기반으로한 설계 방향성은

"객체간의 응집도는 높이고, 결합도는 낮추며, 요구사항 변경시 코드 변경을 최소화 하도록 설계해야한다"

라고 볼 수 있다.

 

이에 대해서, 객체지향에서는 SOLID 라는 원칙을 제시한다.

 

 

2. SOLID Principle

: SOLID 원칙이라는것은 객체지향 5대원칙으로도 불리고, 다음의 5가지 원칙들을 의미한다.

 

1) SRP (Single Responsibility Principle) : 단일 책임 원칙

-> 클래스나 함수가 하나의 기능만을 가져야 한다는 원칙이다.

-> 클래스나 함수가 너무 커지면, 이를 별도의 클래스나 함수로 분할해서 관리해야한다

 

2) OCP (Open-Closed Principle) : 개방 - 폐쇄 원칙

-> 기존 코드 변경에는 닫혀 있고, 추가나 확장에는 열려 있어야한다.

-> 자주 변경될 수 있는 내용들은 수정하기 쉽게 설계해야하고, 자주 변경되지 않을 내용들은 수정에 영향 받지 않도록 설계해야한다.

 

3) LSP (Liskov Substitution Principle) : 리스코프 치환 원칙

-> 자식 클래스는 부모 클래스에서 가능한 행위를 수행할 수 있어야한다.
-> 즉 올바른 상속 관계를 유지하고 있는지 생각해봐야한다.

 

4) DIP (Dependency Inversion Principle) : 의존 역전 원칙
-> 의존관계를 맺을때, 변화하기 쉬운것 보다는 변화하기 어려운것에 의존해야한다.
-> 변화하기 쉬운것이란, 구체적인 대상들을 말하고, 클래스나 서브 클래스 인스턴스 등이 해당된다
-> 변화하기 어려운것이란 추상적인 것들을 말하며, 추상 클래스 인터페이스 등이 해당한다
-> 인터페이스나 추상 클래스가 더 상위 객체로 있어야 한다는의미 
-> 이는 의존성 주입 기술의 원칙이됨.

 

5) ISP (Interface Segregation Principle) : 인터페이스 분리 원칙
-> 클라이언트가 자신이 이용하지 않는 메소드에 의존하면 안된다
-> 큰 덩어리의 인터페이스들을 구체적이고 작은 단위로 분리시켜서, 클라이언트가 꼭 필요한 메소드만 사용하게 한다.

 

 

3. UML

디자인패턴에서 설계 방식을 표현할때는 기본적으로 UML 을 이용해서 표현하는데, 

기본적인 표기 방법은 아래의 링크 참조.

 

출처 : https://dailyheumsi.tistory.com/148

 

geniusduck.tistory.com/entry/UML-%EA%B8%B0%EB%B3%B8%ED%8E%B8-%EA%B8%B0%EB%B3%B8-%ED%91%9C%EA%B8%B0-%ED%98%95%EC%8B%9D-%EB%B0%8F-%EA%B4%80%EA%B3%84%ED%91%9C%ED%98%84%EB%B2%95

 

UML - 기본편( 기본 표기 형식 및 관계 표현법 )

UML - 기본편 ( 기본 표기 형식 및 관계 표현법 ) Class 및 Class instance 의 기본 표기 형식 Class 표기형식 UML Diagram 중에서 가장 기본적인 표현 단위인 클래스의 표기형식을 알아보자. +  :  public - :..

geniusduck.tistory.com

 

728x90

'Java > 디자인패턴' 카테고리의 다른 글

Design Pattern - Adapter Pattern  (0) 2021.02.25
Design Pattern - Strategy Pattern  (0) 2021.02.23