객체지향 디자인 패턴 2

김영진·2021년 6월 20일
0

개념

목록 보기
3/3

목적

Dart에 디자인 패턴 적용

내용

퍼싸드 패턴

하나의 행위를 하는데 필요한 여러 동작들을 스위치 하나로 작동하게 하는것

  • 라면을 사고 라면을 끓이고 라면을 담는 동작을 버튼 하나로 동작하게 하는것

템플릿 메소드 패턴

전반적인 과정에 공통적인 절차가 있을때 코드를 효율적으로 짜기 위해 사용되는 패턴

  • 약과를 만드는 공장이 있다.
  • 반죽을하는과정, 굽는과정, 시럽을바르는 과정이 있다.
  • 이 과정을 각각 다르게 하여 약과를 만들면 다른 컨셉의 약과가 만들어진다.
  • 카카오 맵과, 네이버 맵을 사용하려고 한다.
  • 둘다 내위치를 찾고 목적지를 찾고 경로를 탐색하는 행위는 똑같다
  • 하지만 둘의 구현은 완전히 다르게 되어있다.
  • 맵뷰라는 추상클래스에 추상메소드를 만들고 맵뷰 클래스를 상속받아 함수를 오버라이딩하여 구현

데코레이터 패턴

특정 클래스에 객체들이 할 수 있는 일을 여러가지 두고 각 객체마다 사용자가 원하는대로 골라 시키거나 기능들을 필요에 따라 장착할수 있도록 할때

  • 전투기게임에서
  • 전투기가 아이템을 먹으면 전투기의 공격 모션이나 이펙트가 바뀐다.

팩토리 메서드 패턴

특정 클래스에서 사용하는 기능이 많고 복잡할때 사용하는 패턴으로 기능의 세부적인 내용을 알 필요 없이 사용할 객체의 조건들만 넘겨주면 팩토리 패턴이 적절한 객체들을 생성해서 넘겨준다.

추상 팩토리 메서드 패턴

팩토리 메서드 패턴을 사용할때 2개 이상의 팩토리를 만들고 싶을때 사용

  • 밝은모드,다크모드의 화면의ui는 공유되지 않지만 같은 팩토리를 사용함.

메디에이터 패턴

N 대 N 관계에 사용

  • 어떠한 기능이 변경되었을때 딸려진 클래스들에게 직접 알려주는것이 아니라
  • 중재자를 두고 중재자가 리스트를 가지고 클래스들에게 변경 내용을 직접 알려주는것

컴포지트 패턴

포함되거나 포함하는것들이 같은 방식으로 동작할때

  • 컴퓨터 파일, 폴더에서 폴더안에 폴더가, 파일이 들어갈수 있다.
  • 파일과 폴더 둘다 이름바꾸기 기능이 가능하다.
profile
2021.05.03) Flutter, BlockChain, Sports, StartUp

0개의 댓글