디자인 패턴을 배우기 전에 알아두면 좋은 것들

WestCoast·2021년 9월 24일
0

디자인 패턴

목록 보기
1/2
post-thumbnail

들어가기 전에


아래 대분류들에는 모두 이해하기 쉽다고 생각한 글들의 링크를 걸어두었으므로 링크도 들어가서 보는 것이 좋음.
원론적인 부분까지 이해하고 싶다면 위키피디아도 같이 본다면 좋다고 생각함.

[Design Pattern] 개요


  • 디자인 패턴이란?

    디자인 패턴은 일종의 설계 기법이자 설계 방법이며, 아이디어다.
    꼭 디자인 패턴을 적용해야 하는 것은 아니지만, ‘재사용, 호환, 유지 보수’시에 발생하는 문제 해결을 예방하기 위해 만들어 둔 것.

  • 목적

    SW 재사용성, 호환성, 유지 보수성을 보장.

  • 원칙

    SOLID (객체지향 설계 원칙)

[디자인패턴] 생성패턴, 구조패턴, 행위패턴


  • 생성 패턴: 객체의 생성 방식 결정

    객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다.
    Ex) 게임 내내 존재할 플레이어 캐릭터를 오직 하나만 만들어질 수 있도록 보장함.(싱글톤 패턴)

  • 구조 패턴: 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴

    예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴이다.
    Ex) 2개의 서로 호환되지 않는 인터페이스 사이에 새로운 클래스를 만들어서 연결되도록 함.(어댑터 패턴)

  • 행위 패턴: 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴

    한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도를 최소화하는 것에 중점을 둔다.
    Ex) 유닛 인터페이스가 있고, 전투기, 헬리콥터 클래스가 있고, 미사일, 총, 레이저 클래스가 있어서 쉽게 바꿔 낄 수 있도록 한다.(스트래티지 패턴)

응집도와 결합도


  • 결합도

    두 개의 요소에 대해 하나가 변경될 때 다른 하나가 얼마나 변해야 하는가의 정도.
  • 응집도

    하나를 변경했을 때 전체가 다 같이 변하면 응집도가 높은 것.
  • 결론

    결합도는 낮게, 응집도는 높게.

인터페이스(interface)와 추상 클래스(abstract class)


  • abstract

    목적: 상속을 받아서 기능을 확장
    특징: 추상 메소드가 1개 이상, 일반 메소드 구현 가능
  • interface

    목적: 구현하는 클래스에 대해 특정 메소드가 반드시 존재하도록 강제
    특징: 모든 메소드가 추상 메소드, 일반 메소드 구현 불가

UML 클래스 다이어그램 기본상식 ( C# )


  • 디자인 패턴을 알기 위해서는 UML에 관하여 짚고 넘어가야 함.
    디자인 패턴이라고 하는 설계도를 읽기 위해서 알아야 할 용어의 정리라고 할 수 있음.
profile
게임... 만들지 않겠는가..

0개의 댓글