看板 [ OOAD ]
討論串[請教] 請教strategy、state pattern in C++
共 7 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者iamstudent (stu)時間13年前 (2011/04/23 15:46), 編輯資訊
1
0
0
內容預覽:
當一個大class內的工作內容會發生變化時. 可以把不同的處理方法抽出去. 然後利用虛擬函數的多型來達成目的. 但是我在c++使用上有點困擾在. 要使用的資源都在原本的大class中. 而抽出去的這些state都要使用它們. 只想到兩個方法. a 在大的class中使用friend. b 在大的cl
(還有215個字)

推噓4(4推 0噓 9→)留言13則,0人參與, 最新作者leondemon (狗狗)時間13年前 (2011/04/23 17:40), 編輯資訊
0
0
0
內容預覽:
我不懂C++ 也看不太懂你的問題. 但是如果一個龐大的class內部有許多需求需要改變的時候 一般會用下面作法:. 原本狀態:有一個物件叫做Computer. 他有9種方法(method1-method9)以及5種實體變數(ivar1-ivar5). 用pseudo-code表示:. class C
(還有3040個字)

推噓3(3推 0噓 2→)留言5則,0人參與, 最新作者chchwy (mat)時間13年前 (2011/04/23 19:33), 編輯資訊
1
0
0
內容預覽:
既然是C++,我就用C++來寫. /* 你說的大class */. class BigClass {. private:. Data * data; //不希望公開曝露的資源,但是必須給State使用。. public:. State* getState() { // 透過BigClass建立Sta
(還有338個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者iamstudent (stu)時間13年前 (2011/04/23 19:51), 編輯資訊
1
0
0
內容預覽:
差不多完全是正解了. 把所有資料移動到class Data裡面去. State的Data*用protected就可以讓繼承state的子class使用. 不過這邊又有一個問題. class Data 不就又要friend所有繼承State的class?. 或者class Data所有成員必須是pub
(還有10個字)

推噓1(1推 0噓 2→)留言3則,0人參與, 最新作者chchwy (mat)時間13年前 (2011/04/23 20:09), 編輯資訊
1
0
0
內容預覽:
不太懂你的問題..... Data 所有的欄位都是 public 有何不好?. 並不是權限設成public就一定會曝露,. 我的做法就是從資源的來源限制起,. 目前除了BigClass與State,其他人根本看不到 Data,. 那 Data 的欄位是 public/private又有什麼關係呢?.
首頁
上一頁
1
2
下一頁
尾頁