Re: [請教] 請教strategy、state pattern in C++
我好像想出解法了
利用inner class來辦到
不過還沒有測試驗證
//原本的大class
class BigClass
{
private:
StateInterface::Inner _data;
StateInterface* _state;
public:
//設定狀態
inline void SetState(StateInterface* state)
{
_state = state;
_state->_inner = &_data;
}
//會變化功能的函數
inline void DoSomething()
{
_state->DoSomething();
}
}
//state 的共通介面
class StateInterface
{
protected:
friend BigClass
//原本的Data放這邊
class Inner
{
public:
...
}
Inner* _inner;
public:
//做事情的純虛擬函數
virtual void DoSomething()=0;
}
//其他繼承state的類別模式
class StateInitial : public StateInterface
{
public:
//實做
virtual void DoSomething();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.210.62
※ 編輯: iamstudent 來自: 140.113.210.62 (04/23 20:19)
※ 編輯: iamstudent 來自: 140.113.210.62 (04/23 20:25)
※ 編輯: iamstudent 來自: 140.113.210.62 (04/23 20:31)
討論串 (同標題文章)
完整討論串 (本文為第 6 之 7 篇):
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章