Game Programming 썸네일형 리스트형 패턴 - 9. 빌더 패턴(Builder Pattern) 9. 빌더 패턴(Builder Pattern) - 복잡한 객체의 생성을 표현으로부터 분리시키는 것이다. → 그냥 일정한 양식의 데이터 값을 사용하는 함수?가 있을 경우 해당 값들을 양식에 맞게 사용한다 하지만 중간중간에 데이터가 없는 경우도 발생할 것이다. 그럴 경우 Null로 표기나 0으로 표기하던가 아니면 양식을 또하나 만들어야되는 상황이 발생한다. 예) - 위 PersonInfo()에 정보를 담을려면 제약사항이 있다 매개변수가 없을 경우와 매개변수의 순서가 다를 경우 입력에 오류가 따른다. public PersonInfo build(){ PersonInfo personInfo = new PersonInfo(name, age, favoriteColor, favoriteAnimal, favoriteNu.. 더보기 패턴 - 8. 추상 팩토리 패턴(Abstract Factory Pattern) 8. 추상 팩토리 패턴(Abstract Factory Pattern) - 많은 수의 연관된 서브 클래스를 특정 그룹으로 묶어 한번에 교체할 수 있도록 만든 디자인 패턴 예) 공장별로 팩토리(MachineFactoryA, MachineFactoryB)를 만들고 해당 팩토리를 자신에게 알맞는 멤버 클래스들을 생성8.1 설명 8.1.1 MachineA, MachinB - MachineA와 MachineB의 Interface를 만든 후 그것을 상속받은 하위 클래스에서 구현을 하도록 하지만 동작이 Machine의 Process()로 동일하므로해당 클래스 MachineA와 B를 갖고 있는 MachineFactory라는 Super Interface를 만든다. - 사용 시에는 Super Interface를 상속받은 M.. 더보기 패턴 - 7. 팩토리 메소드 패턴(Factory Method Pattern) 7. 팩토리 메소드 패턴(Factory Method Pattern) - 하위 클래스에서 객체를 생성하는데, 상위 클래스에서 그 객체에 대해 몰라도 된다는 것. 예) 피자가게로 든다. - 슈퍼클래스(피자가게)에 피자 생성이라는 가상함수를 만들어 놓고 각각의 하위 클래스(하위 피자가게)에서는 피자를 생산하는 것을 공통으로 갖고 뭘 생산하는 것에 대해선 하위 클래스에 위임?(구현)을 하는 것이다. ㆍ하위 클래스에서 객체 생성 함수를 구현하여 상위 클래스와 실제 생성되는 객체와의 의존성을 제거 더보기 패턴 - 6. 템플릿 메소드 패턴(Template Method Pattern) 6. 템플릿 메소드 패턴(Template Method Pattern) - 상위 클래스에서 처리의 흐름을 제어하며, 하위 클래스에서 처리의 내용을 구체화 한다. - 여러 클래스에 공통되는 사항은 상위 추상 클래스에서 구현하고, 각각의 상세 부분은 하위 클래스에서 구현 - 위 예제로 보면 음료수를 만들 경우 각각 커피와 홍차는 음료로부터 중복되는 코드가 발생한다.ㆍ 중복코드 : 물을 끓인다, 컵에 따른다 - 여기서 중복되는 코드를 상위 음료 클래스에서 구현하고 각각의 세부적인 부분들은 하위 클래스에서 구현한다. - 이렇게 중복되는 코드는 상위클래스에서 구현하고 하위 클래스에선 중복되지않은 것들만 구현한다. 더보기 패턴 - 5. 데코레이터 패턴(Decorator Pattern) 5. 데코레이터 패턴(Decorator Pattern) - 객체를 동적(Dynamic)으로 서브 클래스를이용해서 확장한다. - 기본 클래스 및 해당 객체 자체에 추가적인 서브 클래스를 구성해서 생성자 파라메터로 객체를 넘겨서 원하는 기능을 표현하는 방법 - 구현 클래스와 같은 형식의 데코레이터를 생성하고 해당 데코레이터를 구현한 다양한 서브클래스를 생성한다. - 구현 클래스와 타입(A)이 같으므로 덧씌울 수 있다. ※ 쉽게 생각하면 구현 되어 있는 클래스가 있고 새롭게 재정의? 구현을 다시 한다면 기존 코드를 복사한 Decorator를 생성 한 다음 서브 클래스에서 다시 재정의 해서 사용하는 방법이다.자식 클래스?에서 다시 덮어 씌운다는 생각을 갖자 5.1 특징 및 장단점 5.1.1 특징 - 다양한 부가.. 더보기 패턴 - 4. 스트래티지 패턴(Strategy Pattern) 4. 스트래티지 패턴(Strategy Pattern) - 객체가 상태를 가지고 있고 현재 상태에 따라 행동이 달라지는 것을 말한다. - 왼쪽 UML 다이어그램을 보면 추상 클래스로 Animal을 만든 후 동물의 공통함수 Cry(울기), Move(움직이기), Display(보여주기) 메소드를 정의 했다. - 그 후 독수리와 호랑이는 Animal 클래스를 상속 받았으며 메소드들을 정의 했다. - 상속보다는 구성을 활용 - 구현이 아닌 인터펭스에 맞춰서 프로그래밍을 하도록한다. - 기존 Animal에 Fly나 Cry를 추가 할경우 Animal에 넣어 상속시키는 것이 아니라 Fly와 Cry의 함수를 따로 빼 캡슐하 하여 사용하도록 한다. - 변하는 부분을 캡슐화 하여 해당 기능을 인터펭스에 위임한다. - 코드의.. 더보기 패턴 - 3. 옵저버 패턴(Observer Pattern) 3. 옵저버 패턴(Observer Pattern) - 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식 ㆍ 1대다의 의존성을 정의 - 간략하게 설명한다면 ㆍ디스플레이1,2,3이 옵저버패턴 시스템에 등록되어 있다면 각 센서에서 새로운 값이 들어오면 옵저버로 등록되어 있는 디스플레이 장비에도 갱신된데이터를 전송하는 것이다. 3.1 옵저버 패턴을 구현 방법은 - JDK에서 지원하는 Observable과 Observer API를 활용하는 방법 - API를 활용하지 않고 직접 구현하는 방법 3.2 옵저버 패턴의 문제점 - Observable은 클래스다. ㆍObservable는 클래스 이기 때문에 서브클래스를 만들어야 한다. 이미 다른 수퍼클래스를 사용하고 있는.. 더보기 partial type이란? 만들어진 이유 : Code Generator가 만든 코드와 사용자가 만든느 코드를 분리하기 위해서 쉽게 보면 C# WinForm에서 UI를 사용하는 Form1.designer.cs파일과 사용자가 사용하는 Form1.cs파일에 동일한 클래스 명을 두고 partial로 선언하면 나중에 컴파일러가 하나로 합쳐 클래스를 만든다. Partial 사용법 : partial 키워드는 class, struct, interface 키워드 바로 앞에 위치해야함 1. Partial Class - 3개로 분리 한 경우 partial class Class1{ public void Run(){} } partial class Class1{ public void Get(){} } - class 명을 동일하게 사용할수있다. 2. Par.. 더보기 C# Convert 관련(string to Enum) 모든 Convert는 예제문을 함께 한다. 1. string to Enum - TESTEnum testEnum = (TESTEnum) Enum.Parse(typeof(TESTEnum), String ...); 더보기 Delegate란? Delegate : 중간 전달자라고 생각하자 집판매자 더보기 이전 1 2 다음