프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5710 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 3 시간 전 116
5709 [프로그래밍] 패스트 캠퍼스 <---- 얘내는 가격 인상 원툴임? 5 조강현 0 2 일 전 290
5708 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 3 일 전 207
5707 [프로그래밍] leetcode 50일 달성 1 JimmyMcGill 1 4 일 전 182
5706 [프로그래밍] 그냥 개인공부용 git 만들건데 5 년째재수강 0 4 일 전 267
5705 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 4 일 전 311
5704 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 5 일 전 326
5703 [프로그래밍] 아두이노 키트 아무것도 모르고 사도 될까? 6 그것 0 5 일 전 263
5702 [프로그래밍] 횽들 Vimeo에 올라가있는 동영상의 원본크기를 확인할 수 있... 13 카뜨만두 0 5 일 전 187
5701 [프로그래밍] c# 이벤트와 델리게이트 13 RX7900XTX 0 8 일 전 307
5700 [프로그래밍] Aws 람다에 파이썬 올려서 결과 받아오는데 11 아르피쥐 0 10 일 전 345
5699 [프로그래밍] 마리아DB mediumtext 그냥 쓰고 싶은데 21 잉텔 0 10 일 전 222
5698 [프로그래밍] 안드로이드 씹뉴비 질문이요 2 집에가게해줘 0 10 일 전 128
5697 [프로그래밍] c언어 7년했는데 이런게 되는거 처음알았음.. 4 케로로중사 0 12 일 전 902
5696 [프로그래밍] 파이썬 1도 모르는데 GPT로 프로그램 뚝딱 만듬 2 푸르딩딩 1 15 일 전 751
5695 [프로그래밍] 담주 면접잡혔는데 8 삐라루꾸 0 15 일 전 505
5694 [프로그래밍] 아두이노 부트로더를 구웠는데.. 4 렙이말한다ㅡ니가옳다 0 16 일 전 236
5693 [프로그래밍] IOS 개발자 있나여? 1 g4eng 0 18 일 전 261
5692 [프로그래밍] 시스템 디자인 인터뷰 준비 도움좀!!! 1 Nognhyup 0 19 일 전 205
5691 [프로그래밍] 최근에 vscode 쓴 사람 도움! 3 172102 0 20 일 전 529