| 니앙팽이 - 이벤트(C#) | 3 | 델리게이트 액션 (Action)
·
Language/C#
💡 3. Event Action & Func📄 1. Action 대리자리턴값이없는 프로스저를 캡슐화 하는대리자를 정의한다.즉, 리턴값이 없는 함수를 대리자 사용하고 싶으면? Action Type을 사용하면 된다.1). Action 대리자 종류① Action 대리자는 다음 종류가 있다.리턴도, 매개변수도 없는 대리자Action _DelegateInstance_매개변수 하나정도 있는 대리자Action _DelegateInstance_매개변수 N개 있는 대리자Action _DelegateInstance_ 📄2. Action1). Action 사용 안했을때,public delegate void Del(); public static HelloWolrd() { Console.WriteLine("Hello World..
| 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate)
·
Language/C#
💡 2. Event 델리게이트📄 1. 델리게이트란?대리자는 함수를 런타임에 바인딩하는 매커니즘을 제공한다. 대리자는 특정 매개 변수 목록 및 반환 형식이 있는 메서드에 대한 참조를 나타내는 형식입니다. C++의 함수 포인터와 유사하다. 다만 메서드를 안전하게 캡슐화하는 형식이다.1). 특징함수를 변수처럼 사용할 수 있다.함수를 담는 타입(int, float, bool 등등..)을 정의한다."Delegate Type"함수를 담는 Delegate Type에 대한 변수를 만들 수 있다."Delegate Instance"그 변수에 함수를 대입할 수 있다.Delegate Type 변수는 다른 함수의 패러미터로 사용될 수 있다.Delegate Type 배열그말은 즉슨 인덱스에 따라 함수가 달라지게 할 수 있다.De..
| 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩
·
Language/C#
💡 1. Event 개요 바인딩 📄 0. 용어정리 0). 가상함수 가상함수는 수퍼클래스를 상속하는 서브클래스에서 Override(함수 재정의) 할 것으로 기대하고 정의해놓은 함수다. ① 특징? Virtual 예약어를 사용해 함수 앞에 붙여서 생성할 수 있다. 다르게 말하면 Override되려면 Virtual 키워드가 붙여져 있어야 한다.class SuperClass { public virtual void Method(){Console.WriteLine("저는 부모클래스 메소드입니다.");} } class SubClass : SuperClass { public override void Method(){Console.WriteLine("저는 자식클래스 메소드입니다.");} } 런타임에 함수포인트 값이 정의 ..
| 니앙팽이 - 이벤트(C#) | 0 | 이벤트 지향 개발
·
Language/C#
💡 1. 용어 정리📄 1. 프로세스 & 스레드프로세스메모리에 올라와 실행중인 프로그램 프로그램의 인스턴스스레드프로세스 내에서 할동받은 실행의 단위 경량 프로세스인 Light Weigh Process프로세스 VS 스레드스레드는 프로세스 내의 메모리 공간을 공유하지만 각각의 프로세스는 별도의 메모리 공간을 갖습니다.📄 2. 인터럽트(Interrupt)란?, 디스패처(Dispatcher)란?link : 인터럽트(Interrupt) & 디스패처(Dispatcher)Interrupt방해라는 뜻이 아니다.어떤 장치가 다른 장치의 일을 잠시 중단시키고 자신의 상태 변화를 알려 주는 것이다.이벤트(Event Invoke)와 동일하다.Dispatcher준비상태(Ready)에서 실행상태(Running)로 상태전이(Stat..
| 니앙팽이 - 객체지향(OOP) | 4-9 | 유용한 패턴들 - Subclass Sandbox, Event queue, Object Pool
·
CS/SW 공학
📕 4. 객체지향 디자인 패턴유니티에서 사용하면 좋을 디자인 패턴만 명시한다.📄 6. 그밖에 Unity에 유용한 패턴1). ✨ Subclass Sandbox ✨ : Behavioral Patterns상위 클래스가 제공하는 기능들을 통해서 하위 클래스에서 행동을 정의한다.ⓐ 특징# abstract & override #protected #subclass실제 구현부, 메인이 되는 객체가 파생클래스다.그럼 상위클래스가 제공하는것은 뭔가?상위 클래스는 하위 클래스가 필요로 하는 기능을 전부 제공할 수 있다.상위 클래스는 하위 클래스용 메소드인 Sandbox 메소드를 제공한다.sandbox 가 의미하는것.추상 원시 메소드.protected로 만들어져 하위 클래스용이라는 걸 분명히 한다.하위 클래스에서 구현할때 아..
| 니앙팽이 - 객체지향(OOP) | 4-8 | 행동패턴 - State pattern
·
CS/SW 공학
📕 4. 객체지향 디자인 패턴유니티에서 사용하면 좋을 디자인 패턴만 명시한다.📄 5. 행동 패턴클래스와 객체간 서로 상호작용하는 방법이나 책임 분배 방법을 정의 하나의 객체로 수행할 수 없는작업을 여러 객체로 분해하면서 결합도를 낮출수 있음3). State Pattern ⓐ 특징"상태"를 객체화한 패턴이다. 이 상태라는것도 참조가능하다.상태에 따라 객체의 행위 내용을 변경해주는 패턴메인 캐릭터가 가질만한 상태를 생각해보자. jump, walk, run 등등.. 이러한 상태를 손쉽게 switcing 하고 싶을떄. 제안하는 패턴이다.오토마타의 state machine와 관련이 깊다.FSM 유한상태기계의 기초 & 유니티 설계 이론.ⓑ 왜 쓰는가?if 조건절이 많을때 사용하면 유용하다.객체의 상태에 따라 동일한..
| 니앙팽이 - 객체지향(OOP) | 4-7 | 행동패턴 - Observer pattern
·
CS/SW 공학
📕 4. 객체지향 디자인 패턴유니티에서 사용하면 좋을 디자인 패턴만 명시한다.📄 5. 행동 패턴클래스와 객체간 서로 상호작용하는 방법이나 책임 분배 방법을 정의 하나의 객체로 수행할 수 없는작업을 여러 객체로 분해하면서 결합도를 낮출수 있음2). ✨ Observer Pattern✨ ✨매우 중요하므로 대리자 & 이벤트 에서 정리✨ⓐ 특징이벤트기반 패턴이다. 디커플링에 매우 유용옵서버 패턴은 여러 객체에 자신이 관찰 중인 객체에 발생하는 모든 이벤트에 대하여 알리는 구독 메커니즘을 정의할 수 있도록 하는 행동 디자인 패턴입니다.ⓑ 왜 쓰는가?옵서버 패턴은 한 객체의 상태가 변경되어 다른 객체들을 변경해야 할 필요성이 생겼을 때, 그리고 실제 객체 집합들을 미리 알 수 없거나 이러한 집합들이 동적으로 변경될 ..
| 니앙팽이 - 객체지향(OOP) | 4-6 | 행동패턴 - Command pattern
·
CS/SW 공학
📕 4. 객체지향 디자인 패턴 유니티에서 사용하면 좋을 디자인 패턴만 명시한다. 📄 5. Command Pattern 행동 패턴 1. 커맨드 패턴의 특징 함수 호출(요청)을 저장하는 객체 형태로 캡슐화 Excute와 Undo를 캡슐화 하여 관리하는데 유용한 패턴이다. Command라는 추상적인 단위로 ConcreteCommand라는 클래스를 만들 수 있고. 함수호출이란, 리시버에 의존하여 리시버의 함수를 수행한다 라는것. 함수 호출 타이밍 조절 & 로깅 커맨드를 콜렉션(Queue, Stack, List)으로 관리할 수 있다. 실행 타이밍에 순서를 둘 수 있으니 턴제 게임에도 유용하다. 굳이 그 클래스에 정의되지는 않지만. 특정한 로직을 수행하는 메소드를 외부에 정의하도록 하여 함수에 사용될 데이터와 객체..
| 니앙팽이 - 객체지향(OOP) | 4-5 | 구조패턴 - Flyweight pattern
·
CS/SW 공학
📕 4. 객체지향 디자인 패턴유니티에서 사용하면 좋을 디자인 패턴만 명시한다.📄 4. 구조 패턴클래스나 객체를 조합하여 더 큰구조로 만드는 패턴3). Flyweight Patternⓐ 특징다수의 유사객체를 사용하거나 조작할떄 유용인스턴스가 필요할 때마다 매번 생성하는것이 아닌 가능한 공유를 통해 사용함으로 메모리를 절약하는 패턴인스턴시에이트를 많이 해야할때, 공유를 통해 오브젝트를 더 가볍게, 메모리를 절약할때 사용한다.ⓑ 왜 쓰는건가?마인크래프트를 생각해보자 매~~~~~~우 많은 블럭들이 있을것이다. 이 마크에서는 텍스쳐를 플라이 웨이트방식으로 구현했다만약 스타같은 게임을 만든다할때. 유닛들은 같은 mesh, texture, maxhelth setting등등 이 유닛들이 모두 단일 오브젝트를 받아 공유..
| 니앙팽이 - 객체지향(OOP) | 4-4 | 구조패턴 - Decorator pattern
·
CS/SW 공학
📕 4. 객체지향 디자인 패턴유니티에서 사용하면 좋을 디자인 패턴만 명시한다.📄 4. 구조 패턴클래스나 객체를 조합하여 더 큰구조로 만드는 패턴2). Decorator Patternsⓐ 특징객체의 기본 기능에 추가 기능을 덧붙여 결합 & 장착할 수 있다. 1. 다수의 옷이 가진 각각의 효과를 결합 할 수 있다.즉 객체를 런타임 동안 동적으로 변화시킬수 있다.ⓑ 왜 쓰는가?기능 확장성기존 코드를 수정하지 않고도 데코레이터 패턴을 통해 행동을 확장할수 있다.동적 확장성구성과 위임을 통해서 실행중에 새로운 행동을 추가할 수 있습니다.ⓒ 구성요소Component인터페이스 또는 추상클래스가 된다.기본 기능을 정의한다.ConcreteComponent기본 기능이 되는 인스턴스가 된다. 데코가 붙을 대상Componen..