2014年4月10日 星期四

[Code Review] Team 02 - Hw06 Version 2

根據老師的回覆加以修改,改善Show result。



執行檔的連結


Form1.cs Object3D.cs Cube.cs Ball.cs Cylinder.cs Pyramid.cs

4 則留言:

  1. 第8組
    檢驗是否可以轉換的Code以及VisibleTable等顯示格子的code寫的太好了。
    尤其是轉換數字的code,在做視窗程式的時候最容易發生資料轉換錯誤的問題了,受益良多

    回覆刪除
  2. 林高遠評論:


    1. 看到這個我才知道switch case也可以用字串
    2. 張貼程式碼選擇性開啟做得實在太棒了!閱讀起來很舒服


    1. ObjectType 與 ObjectTypeWrite怎麼不寫成同一個屬性
    2. 基礎類別的體積和質量最好不要實做,因為"形狀"是沒有體積和質量可言的,"正方體"或"球"才有;實做出來,呼叫錯了也難發現
    3. pi宣告在基礎類別較好,因為這是共通特性
    4. ObjectType_Write = "Ball "; 應該在宣告欄位直接初始化解決就好,因為看起來這行是建構就一定會發生

    回覆刪除
  3. 針對缺點的部分,我加以說明一下:

    1. ObjectType 與 ObjectTypeWrite: 這種奇怪的寫法主要是因為需要的存取權限不同的結果,存的部分是protected,取是public。不過其實後來發現是可以寫在一起的,所以這邊的確是可以改進。

    2. 沒錯,基礎類別是不應該被實體化的,不過既然還沒教,這邊也暫時不這麼做。

    3. 這點其實我在寫的時候是有點猶豫的,就如你所說的它畢竟是常數,不受各種類別影響而放在基礎類別上,但又不是所有衍生類別都用得到(譬如說: 方塊),而是等需要使用的時候再涵蓋進來就好了,因此才會變成你看到的結果。

    4. 這點我就比較不贊成了。雖然衍生類別的ObjectType的存放的內容是不一樣的,但它們的型態是一樣且皆為必須的(都是string),所以基於繼承精神而在基礎類別上先建立欄位型態(只是順便放Object3D),等衍生類別的物件建立時再填入正確的內容"Ball"。另外這樣的方式可以藉由ObjectType讀取衍生類別的物件的資訊。

    回覆刪除
    回覆
    1. 我覺得你改回在我下面的"回覆",然後把這篇刪掉比較好,這樣問答的脈絡才明確

      刪除