본문 바로가기
Computer Science/디자인 패턴

[디자인 패턴] 디자인 패턴

by nahkim 2023. 3. 5.

디자인 패턴

객체지향 프로그램에서 유연하고 확장성 있는 설계가 가능한 예시를 제시

 

 

객체 지향 프로그래밍 특성

  • 추상화
  • 캡슐화
  • 상속
  • 다형성

 

객체 지향 디자인 원칙 (Object Oriented Design Principle)

  • 애플리케이션의 달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다. 새로운 요구사항이 있을때 마다 달라지는 부분을 분리해야한다.
  • 구현보다는 인터페이스에 맞춰서 프로그래밍을 한다.
  • 상속보다는 합성을 사용한다.
  • Abstract class vs Concrete class(구상 클래스, 구체 클래스)
  • Class Inheritance(상속) vs Object composition(합성)
  • Interface inheritance(인터페이스를 구현한 클래스를 유연하게 사용) vs Implementation inheritance(구현에 종속적임)

SOLID 원칙

  • 단일 책임의 원칙
  • 개방 폐쇄의 원칙
  • 리스코프 치환 원칙
  • 의전 역전 원칙
  • 인터페이스 분리 원칙

디자인 패턴 특징

  • 언어에 종속적이지 않음
  • 프래임워크 개발에 적용 가능
  • 특정 영역에 종속적이지 않고 일반적으로 활용 가능
  • 좋은 설계에 대한 제안

디자인 패턴 쓰는 이유

  • 소프트웨어의 요소들을 향상시킴
  • 리팩토링 가능
  • 유지보수 비용 절약

 

용어

인터페이스 : 구현이 되지 않고 선언만 되어있는 것, API를 생각하면 될듯

자바에서 상속 : 일반적인 클래스에서 구체적인 클래스를 구현하는 것 (코드의 재사용이 아님 -> 이건 합성)

합성 : 코드의 재사용을 생각하기

 

 

출처 : https://inf.run/hxDx

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

[디자인 패턴] Factory  (0) 2023.04.07
[디자인 패턴] 디자인 패턴 종류  (0) 2023.02.22