看板
[ OOAD ]
討論串[請教] 請教strategy、state pattern in C++
共 7 篇文章
內容預覽:
當一個大class內的工作內容會發生變化時. 可以把不同的處理方法抽出去. 然後利用虛擬函數的多型來達成目的. 但是我在c++使用上有點困擾在. 要使用的資源都在原本的大class中. 而抽出去的這些state都要使用它們. 只想到兩個方法. a 在大的class中使用friend. b 在大的cl
(還有215個字)
內容預覽:
我不懂C++ 也看不太懂你的問題. 但是如果一個龐大的class內部有許多需求需要改變的時候 一般會用下面作法:. 原本狀態:有一個物件叫做Computer. 他有9種方法(method1-method9)以及5種實體變數(ivar1-ivar5). 用pseudo-code表示:. class C
(還有3040個字)
內容預覽:
既然是C++,我就用C++來寫. /* 你說的大class */. class BigClass {. private:. Data * data; //不希望公開曝露的資源,但是必須給State使用。. public:. State* getState() { // 透過BigClass建立Sta
(還有338個字)
內容預覽:
差不多完全是正解了. 把所有資料移動到class Data裡面去. State的Data*用protected就可以讓繼承state的子class使用. 不過這邊又有一個問題. class Data 不就又要friend所有繼承State的class?. 或者class Data所有成員必須是pub
(還有10個字)