[問題] 程式結構的問題

看板C_and_CPP (C/C++)作者 (allen)時間12年前 (2014/03/18 22:42), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
問題(Question): 各位版友好,小弟有個問題想請教 舉例如下 假設有個Class包含數個資料成員,都是int 並且都透過get與set方法存取它們 而現在程式需要對這些成員做處理 可能會先用get讀取某個資料成員比較,然後用set寫入 例如這樣: void doSomethingForA(int limit) { if (entity.getA > limit) entity.setA(limit); else entity.setA = 1; } 而程式需要對其他資料成員做同樣邏輯或是類似邏輯的判斷 差別可能只在get與set的地方 那是不是我有幾個資料成員需要這種處理,就要做幾個Function出來 但是一看到這些Funtion都長得很像,使我覺得我程式寫得有問題.... 程式碼如果短短的或是資料成員少,會覺得還可以接受 但是如果一個Funtion比較長或是要處理的資料成員很多 我就不知道要怎麼辦了... 請大家指點一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.225.97.223

03/18 22:45, , 1F
M$ 的作法是,把這些資料成員包成 struct ...
03/18 22:45, 1F

03/18 22:53, , 2F
不太懂樓上的意思?
03/18 22:53, 2F

03/18 23:28, , 3F
試試 function template
03/18 23:28, 3F

03/18 23:30, , 4F
更簡單的 或許傳function pointer當參數 就可做到了
03/18 23:30, 4F

03/19 08:10, , 5F
這要看Function彼此有多像了
03/19 08:10, 5F

03/19 08:11, , 6F
類似簡單工廠的方式也可以多傳一個參數進去判斷做那個。
03/19 08:11, 6F

03/19 12:55, , 7F
entity應該負責處理A, 有 set 等於暴露了A的邏輯
03/19 12:55, 7F

03/19 12:55, , 8F
所以你會有到處散落的處理A的邏輯,嘗試搬進去entity
03/19 12:55, 8F
文章代碼(AID): #1JA5jWrc (C_and_CPP)
文章代碼(AID): #1JA5jWrc (C_and_CPP)