프로그래밍

c# 정적 데코레이터 응용?

class Data
{
public:
    float m_Data;
};

template<class T>
class Op1 : public T
{
public:
    Op1()
        : T()
    { }

    float m_Op1;
};

template<class T>
class Op2 : public T
{
public:
    Op2()
        : T()
    { }

    float m_Op2;
};

template<class T>
class Op3 : public T
{
public:
    Op3()
        : T()
    { }

    float m_Op3;
};

 

---------------------------------

 

Op3<Op2<Op1<Data>>> Data;
    Data.m_Data;
    Data.m_Op1;
    Data.m_Op2;
    Data.m_Op3;

 

 

c++ 템플릿을 이용해서 데코레이터 패턴을 이용해서 Data에 Op1 ~ Op3 멤버를 접근할 수 있도록 하는 방식인데

c#에서 이런 방식으로 표현하려면 어떻게 해야 하나여? 제네릭으로 구현이 잘 안 되는데;;;;;

 

이거 쓰는 이유가 예를 들면

 

무기 정보가 필요한데

어떤 무기는 이동량을 가지고 어떤 무기는 폭발력을 가진다고 가정한다면

 

Movement<Explosion<DataBase>>   DataSheet;

이런식으로

 

Movment가 가지는 멤버 변수 Movement와

Explosion가 가지는 멤버 변수 ExplosionDamage, ExplosionRange을

 

정적으로 만들고 싶습니다.

데코레이터 패턴을 공부하다가
DataBase를 상속받는 Movment, Explosion을 데코레이터로 이용하면 멤버 접근이 가능한 것을 확인했는데
(동적 데코레이터는 멤버 접급이 안 됨....)

 

c++은 템플릿 쓰면 가능한데 c#은 제네릭으로 어떻게 저걸 구현할까요?

2개의 댓글

2023.10.30

우선 데코레이터 패턴은 같은 인터페이스로 다양한 효과를 내는데 의의가 있는 건데, 어떤 데코레이터를 쓰느냐에 따라서 다뤄야 하는 멤버 변수(인터페이스)가 달라지는 경우라면 데코레이터라고 보기 어렵지 않나.. 싶네요.

 

제네릭으로는 조금 어려울 것 같고 그냥 dictionary같은 걸 이용해서 데이터 기반으로 구현하시는 건 어떨까요?

0
2023.10.30
@스비니

맵컨테이너로 해보고 싶긴한데 유니티에서 인스펙터 뷰에서 수정하는 방안으로 가고 싶었는데

이게 제네릭으로 생성하거나 모든 케이스에 대해서 구조체를 만들어야 하는 상황이라 피하고 싶었거든요...

 

key value 쌍으로 이루는 dictionary게 제일 무난한데

문제는 인스펙터 뷰에서는 저런 컨테이너가 안 됨;;;;

 

어쩔 수 없이 c# 코드로 가지고 있는데 맘 편하긴 할 듯....

 

일단 코드 구조부터 재설계중임;;;;

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5698 [프로그래밍] IOS 개발자 있나여? 1 g4eng 0 23 시간 전 170
5697 [프로그래밍] 시스템 디자인 인터뷰 준비 도움좀!!! 1 Nognhyup 0 1 일 전 140
5696 [프로그래밍] 최근에 vscode 쓴 사람 도움! 3 172102 0 2 일 전 303
5695 [프로그래밍] 책을 또 사버리고 말았다... 1 찰나생멸 1 3 일 전 305
5694 [프로그래밍] 윈도우 부팅화면 봐주실분 바나나맛두부 0 5 일 전 202
5693 [프로그래밍] 아 시발 퇴사마렵다 9 인간지표 0 6 일 전 499
5692 [프로그래밍] C#이 ㅈ사기 언어인 이유 19 ye 5 6 일 전 1040
5691 [프로그래밍] 요즘 모바일 개발은 어떤 걸 사용하나요? 14 커피좋아용 0 9 일 전 451
5690 [프로그래밍] 취준생 안드로이드 팀플 주제 머할까요... 8 조강현 0 9 일 전 262
5689 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 9 잠적자 0 11 일 전 512
5688 [프로그래밍] 토이프로젝트 주제 선정 3 개드립눈팅1세대 0 11 일 전 253
5687 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 13 일 전 452
5686 [프로그래밍] 반도체 장비 업계인 있음? 9 캡틴띠모 0 14 일 전 364
5685 [프로그래밍] 안드로이드 책 추천좀 6 집에가게해줘 0 14 일 전 179
5684 [프로그래밍] 폰 스크리닝 해 본 사람 있어? 3 무지개빛푸딩 0 15 일 전 457
5683 [프로그래밍] jsp 트리메뉴 만들고있는데 구상한게가능한지 의견좀물어볼께 11 평택국 0 15 일 전 187
5682 [프로그래밍] JPA 도와줘어억 ㅠ 10 모그리또 0 16 일 전 285
5681 [프로그래밍] 의사는 뽑는 인원 제한하는데 부캠은 왜 제한 안 할까 5 조강현 0 18 일 전 452
5680 [프로그래밍] 그 혹시 게임쪽 종사자 있음? 17 god79ii 0 21 일 전 707
5679 [프로그래밍] 코린이 ㅅㅂ 뭐가 문젠지 모르겠어요 9 집에가게해줘 0 22 일 전 541