티스토리 뷰

마인드 로드맵

단위 전략 패턴

class MovingPolicy {
public:
    bool canMove(int resource) { return false; };
};

template<typename TMovingPolicy>
class Robot {
private:
    TMovingPolicy mover;
    int resource;
    
public:
    void activate() {
        while(mover.canMove(resource)) {
          resource -= 1;
        }
    }
};

////////

class SafeMovingPolicy {
public:
    bool canMove(int resource) { return resource >= 100; }
};

class ExhaustingMovingPolicy {
public:
    bool canMove(int resource) { return resource >= 1; }
};

////////

int main() {
    Robot<SafeMovingPolicy> safeRobot;
    safeRobot.activate();
    Robot<ExhaustingMovingPolicy> drasticRobot;
    drasticRobot.activate();
}

당시에는 더 쓰려고 했는데 나중에 별 의욕이 없어서 일단 공개 처리하기로.

계기는 C++ 잘 하는 친구한데 trait 물었다가 그게 단위 전략 패턴이라고 들은 뒤에 찾아본 것입니다.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함