본문 바로가기
반응형

개발/기본) 디자인패턴21

디자인패턴) 팩토리 패턴(Factory Pattern) 팩토리 패턴(Factory Pattern) 팩토리 패턴의 핵심은 '클래스의 인스턴스를 만드는 것을 서브클래스에서 결정하게 만드는 것'이다. 공장에서 어떤 재표를 넣으면 각 공정에서 다른 모양으로 변환해서 나오는 것으로 생각하면 된다. new 키워드를 사용하는 부분을 서브클래스에서 위임해서 객체 생성을 캡슐화하고 구상 클래스에 대한 의존성이 줄어든다. public class UnitFactory : TypeUnitFactory { public override Unit MakeUnit(eUNIT_TYPE _type) { Unit returnValue = null; switch (_type) { case eUNIT_TYPE.ATTACK:{ returnValue = new AttackUnit(); } break.. 2020. 3. 18.
디자인패턴 ) FSM- 유한상태머신(Finite State Machine) FSM- 유한 상태 머신(Finite State Machine) 유한 상태 머신이라고해서 상태를 기반으로 동작하는 개념의 방식을 말한다. 상태를 기반으로 처리되기 때문에 한 번에 한 개의 상태만 처리가 된다. 상태에 기반한 조건을 처리하기 때문에 상태가 변경이 되면 상태에 대한 종료 및 다른 상태로의 변환 과정을 처리한다. 상태는 여러가지 상태를 다중으로 처리하지 않고 Only One 인 방식으로 처리한다. FSM은 게임로직에서 많이 사용을 하는 것 같다. 게임에서는 일정한 조건을 만족을 할 때에 대한 조건이 상당히 많은 편이다. 다른 애플리케이션에 비해서. 그래서 FSM을 기반으로 메인 로직과 같이 처리하는 경우가 많다. 예시는 다음과 같다. 유닛이 있고 유닛은 각각 여러가지 상태가 존재한다. 1) 생.. 2019. 11. 5.
디자인패턴) Command 패턴 Command 패턴 커맨드 패턴이란 실행 가능한 기능을 캡슐화해서 여러가지 기능을 재사용가능한 클래스로 설계하는데 목적을 둔 디자인패턴이다. 실행 가능한 기능을 캡슐화해서 기능읠 실행을 요구하는 호출자 클래스와 수신자 클래스의 의존성을 재거한다. 예시로 Unit 이라는 클래스의 이동을 구현하고자한다. 이동에는 점프(Jump)와 달리기(Run)의 기능이 포함되어있다. 커맨드 패턴으로 구현을 하게되면 단순하게는 이렇게 가능하다. MoveCommand의 추상클래스를 Jump 클래스/ Run 클래스가 상속받고 Action이라는 클래스를 통해서 처리한다. 이렇게 구현을 하게되면 Move의 기능의 구현부의 변경 or 추가된 기능이 독립적으로 처리가되기 때문에 재사용성과 독립성이 확보가된다. 가장 기본이되는 디자인패.. 2019. 10. 16.
디자인패턴) MVVM 패턴 MVVM 패턴 (Model- View - View Model) MVC 패턴의 단점을 보완하기 위해서 만들어진 패턴으로 특징은 Command 패턴과 Data Binding 패턴을 사용해서 구현을 해서 View 와 View Model 사이의 의존성을 없애는 것이다. View Model 과 View 는 1 : N 의 관계를 유지한다. View를 통해서 입력(Input) 이 들어온다. 입력이 들어오면 Command 패턴을 통해 ViewModel에 명령을 전송하고 Data Binding 으로 인해서 ViewModel 의 값이 변화하면서 View의 정보가 변경되는 원리가 된다. View에 입력이 들어오면 Command 패턴으로 ViewModel에 명령을 합니다. ViewModel은 필요한 데이터를 Model에 요청.. 2019. 10. 13.
디자인패턴) MVP 패턴 MVP 패턴 (Model + View + Presenter) MVP 패턴은 MVC의 View와 Model 사이의 의존성이 높아지는것을 낮추기 위해서 Persenter라는 개념이 도입된 패턴이다. 사용자 입력은 MVC와 동일하게 VIew를 통해서 받는다. 그리고 Model과 Persenter 가 해당 액션에 대한 처리를 하고 Persenter를 통해서 View에 전달해준다. 항상 Persenter를 통해서 동작을 하게 되는 방식인데. 이렇게 되면 View와 Model은 상호 독립성을 갖게된다. 장점으로는 View와 Model이 상호 독립성을 갖게되는것과 MVC의 장점도 포함되는 것이고, 단점으로는 Persenter와 View와의 관계가 1:1 의 관계가 되기 때문에 강한 의존성을 갖게된다. 또 이런 단점을.. 2019. 10. 10.
디자인패턴) MVC 패턴 MVC 패턴 (Model-View-Controller ) 의존성을 줄이는 코딩을 통해 재사용성을 높이고 수많은 요구사항 변경에 쉽게 대처하도록 만드는 패턴이다. 뷰와 컨트롤러의 부분만 수정을 하면 되기 때문이다. MVC 패턴은 기능적으로 구조를 분해하여 집중 및 관리하기가 편해진다는 장점이 있어 많이 애용하는 패턴이다. 다만. 경계가 모호한 경우가 종종 존재한다. MVC의 구조는 다음과 같다. 사용자는 View 를 통해 이벤트를 변경 - > 컨트롤러에 요청 -> 이벤트를 구분 및 변경해서 모델에게 전송-> 데이터를 재구성 및 변경 -> View를 통해 사용자에게 전달 Model은 Data의 원본 및 가공한 데이터를 구분해서 가지고 있으며 Controller에게 캡슐화된 데이터를 전송 Controller는.. 2019. 10. 8.
반응형