Re: [請教] 請教strategy、state pattern in C++

看板OOAD作者 (stu)時間13年前 (2011/04/23 20:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/7 (看更多)
我好像想出解法了 利用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)
文章代碼(AID): #1DiiDuVA (OOAD)
文章代碼(AID): #1DiiDuVA (OOAD)