看板
[ OOAD ]
討論串[請教] 請教strategy、state pattern in C++
共 7 篇文章
內容預覽:
ok 我了解你的疑慮了XDDDD. 不過關於這檔事,你還少考慮了一個點。. 如我上面那個範例,State class 別人也可以自己隨便建立阿,. 但是只有透過BigClass建立的 State 才能拿到正確的 Data,對吧。. Data也是一樣,Data裡面裝什麼是一回事,誰建立他又是另一回事
(還有295個字)
內容預覽:
我好像想出解法了. 利用inner class來辦到. 不過還沒有測試驗證. //原本的大class. class BigClass. {. private:. StateInterface::Inner _data;. StateInterface* _state;. public:. //設定狀
(還有637個字)
內容預覽:
差不多完全是正解了. 把所有資料移動到class Data裡面去. State的Data*用protected就可以讓繼承state的子class使用. 不過這邊又有一個問題. class Data 不就又要friend所有繼承State的class?. 或者class Data所有成員必須是pub
(還有10個字)
內容預覽:
既然是C++,我就用C++來寫. /* 你說的大class */. class BigClass {. private:. Data * data; //不希望公開曝露的資源,但是必須給State使用。. public:. State* getState() { // 透過BigClass建立Sta
(還有338個字)