디자인 패턴 7

디자인 패턴 - 커맨드 패턴(Command pattern)에 대해 알아보자

2024.11.07 - [디자인 패턴] - 디자인 패턴 - MVC(Model-View-Controller)패턴에 대해 알아보자(+ MVP, MVVM)  오늘은 커맨드 패턴에 대해 알아보고자 합니다. 팀 프로젝트를 마무리하면서 팀원분의 코드를 보게 되었는데퀵 슬롯을 Command 패턴을 활용하여 구현했다는 내용을 듣고 오랜만에 디자인 패턴으로 글을 작성하게 되었습니다. Command 패턴각각의 요청을 캡슐화하여 명령을 객체화하는 디자인 패턴입니다. 명령을 보내는 객체와 받는 객체 간의 결합도를 낮출 수 있고,명령을 추가할 때 새로운 Command 클래스를 추가하면코드 수정 없이 기능 추가가 가능하다는 장점이 있습니다.  예시 코드 더보기using UnityEngine;using System.Collecti..

디자인 패턴 2024.11.22

디자인 패턴 - MVC(Model-View-Controller)패턴에 대해 알아보자(+ MVP, MVVM)

2024.11.05 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#5 옵저버 패턴 (Oberserver) 지난 시간에 이어 오늘은 MVC(Model-View-Controller) 패턴과MVP(Mode-View-Presenter),MVVM(Model-View-ViewModel)에 대해 알아보고자 합니다. MVC 패턴은 몇 번 들어봤는데찾다 보니 MVP, MVVM 패턴도 함께 설명하고 있기에 같이 정리해 봤습니다. 이전에 팩토리 패턴이랑 팩토리 메서드 같은 느낌으로 생각하시면 편할 겁니다.응용한 버전들이랄까.MVC( Model, View, Controller ) 패턴 이 패턴은 UI를 체계적으로 구현하기 위해 만들어진 패턴입니다.이름처럼 Model, View, Controller 세 부분으로 나누어 불..

디자인 패턴 2024.11.07

디자인 패턴에 대해 알아보자#5 옵저버 패턴 (Oberserver)

지난 시간에 이어 오늘은 옵저버 패턴에 대해 알아보고자 합니다. 2024.10.31 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#4 - 팩토리 패턴 (Factory Pattern) (feat : 팩토리 메소드, 추상 팩토리 패턴) 옵저버 패턴이란?관찰자가 관찰 대상이 되는 객체의 상태 변화에 따라 대응하는 패턴입니다.옵저버라는 뜻 그대로 아주 직관적이죠? 예시  using UnityEngine;using System.Collections.Generic;using UnityEngine.UI;// 옵저버 인터페이스public interface IHealthObserver{ void OnHealthChanged(float currentHealth, float maxHealth);}// 플레이어 체..

디자인 패턴 2024.11.05

디자인 패턴에 대해 알아보자#4 - 팩토리 패턴 (Factory Pattern) (feat : 팩토리 메소드, 추상 팩토리 패턴)

오늘은 지난 시간에 이어 팩토리 패턴(+ 팩토리 메소드, 추상 팩토리)에 대해 알아볼까 합니다.  2024.10.29 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#3 - 전략 패턴 (Strategy)  팩토리 패턴이란 ? 객체 생성을 위한 패턴입니다.팩토리라는 이름처럼 공장에서 상품을 찍어 내듯이객체 생성을 전담하는 클래스를 통해 객체를 생성하는 패턴입니다. 이렇게 함으로써 객체 생성 로직을 캡슐화하고, 객체 생성과 사용을 분리할 수 있습니다. 예시 // 추상 제품 인터페이스public interface ICharacter{ void Attack(); void Move();}// 구체적인 제품 클래스들public class Warrior : ICharacter{ public voi..

디자인 패턴 2024.10.31

디자인 패턴에 대해 알아보자#3 - 전략 패턴 (Strategy)

오늘은 지난 시간에 이어 전략 패턴에 대해 알아볼까 합니다. 2024.10.08 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#2 싱글톤 패턴(feat. 유니티) 전략 패턴이란? 간단하게 정리하자면비슷한 동작을 하는 여러 알고리즘을 만들어 두고 ,필요할 때마다 교체할 수 있도록 만든 패턴입니다. 이렇게 함으로써 후에 새로운 전략을 추가하기도 쉽고코드의 재사용성을 높일 수 있습니다. (동적으로 실행될 수 있는 부분들을 캡슐화) 예시  // 전략 인터페이스 정의 : Movepublic interface IMovementStrategy{ void Move(Transform transform);}public class Character : MonoBehaviour{ private IMovemen..

디자인 패턴 2024.10.29

디자인 패턴에 대해 알아보자#2 싱글톤 패턴(feat. 유니티)

오늘은 싱글톤 패턴에 대해 알아보겠습니다.유니티를 배우면서 싱글톤 패턴을 사용했다/하라는 이야기는 자주 들었는데, 조금 더 구체적으로 어떤 상황에서어떻게 사용해야 하는 건지 정리해 봤습니다. 싱글톤 패턴이란? 클래스가 자신의 인스턴스 하나만 인스턴스화 할 수 있도록 보장하고,이 인스턴스에 대해 어디에서나해당 클래스의 인스턴스에 접근할 수 있도록 하는 패턴입니다. // 유니티에서의 싱글톤 코드 예시 : MonoBehaviour 일 때public class SimpleSingleton : MonoBehaviour{public static SimpleSingleton instance; // 자기 자신을 정적으로 가짐 private void Awake() { if (instance == null) ..

디자인 패턴 2024.10.08

디자인 패턴에 대해 알아보자 #1 Solid 원칙

오늘은 Solid 원칙에 대해 다루고자 합니다. 이전에도 공부하면서 관련 내용이 나와 한번 시간 내서 정리해 보고자 했는데,프로젝트를 진행하면서 그 중요성을 더욱 느낀바 글을 쓰게 되었습니다. 모든 패턴의 내용을 다 다룰지는 아직 모르겠지만 최대한 할 수 있는 선에서 해보겠습니다. 디자인 패턴이란?소프트웨어 개발에서 자주 발생하는 특정 문제들에 대해재사용 가능하도록 패턴화한 해결 방식을 말합니다.   수많은 디자인 패턴이 있지만 그 중 GoF(Gang of Four)가 정리한 23가지 패턴이 가장 유명하고 또 자주 사용되고 있습니다.이를 기준으로 정리하고자 합니다.  GoF의 디자인 패턴은 보통 기능에 따라서 생성 패턴, 구조 패턴, 행위 패턴으로 구분합니다. 생성 패턴 :객체 생성을 다루는 패턴입니다...

디자인 패턴 2024.10.07