Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 1인개발
- 짐벌락
- ExtensionMethod
- callbyreference
- Euler
- Quaternion
- 깃허브
- AR Foundation
- 레이캐스트
- github
- callbyvalue
- AR세팅
- 게임제작
- 로케트
- Unity
- 게임개발
- 리듬게임
- 소규모프로젝트
- raycast
- 병맛게임
- 델리게이트
- C#
- 게임
- 확장메서드
- 유니티
- ar
- 인터페이스
- ARProgect
- 리듬게임에디터
- AR게임
Archives
- Today
- Total
Ssssong += Dev
[디자인패턴/C#] 전략 디자인패턴 본문
public class Teacher : MonoBehaviour
{
public string teacherName;
public string subject;
public ILessonStrategy lessonStrategy;
public void SetInfo(ILessonStrategy strategy, string name, string subject)
{
this.lessonStrategy = strategy;
this.teacherName = name;
this.subject = subject;
}
public virtual void Study()
{
Debug.Log(lessonStrategy.Lesson() + subject + "수업");
}
}
//전략을 추가
public interface ILessonStrategy
{
string Lesson();
}
public class KindLessonStrategy : ILessonStrategy
{
public string Lesson()
{
return "친절한";
}
}
public class StrictLessonStrategy : ILessonStrategy
{
public string Lesson()
{
return "엄격한";
}
}
public class TeacherManager : MonoBehaviour
{
private void Start()
{
Teacher teacherA = new Teacher();
teacherA.SetInfo(new KindLessonStrategy(), "선생님", "프로그래밍");
}
}
인터페이스를 통해 전략 클래스를 생성하여 사용하는 디자인 패턴이다.
전략끼리 묶어서 사용할 수 있으므로 개방폐쇄 원칙에 더 잘 맞고
상속 클래스를 계속 늘려나가지 않아도 된다.
보스몬스터 패턴... 등으로 응용 가능하다.
'개발 > 공부' 카테고리의 다른 글
[디자인패턴/C#] 옵저버 패턴, 템플릿 메서드 (0) | 2022.06.21 |
---|---|
[C#] EventHandler (0) | 2022.06.21 |
[C#] 람다식 (0) | 2022.06.20 |
[유니티] 실행 함수 순서 정하기 (0) | 2022.06.18 |
[C#] 델리게이트(delegate) (0) | 2022.06.17 |