維尼的蜂巢

RealTime??!! It’s amazing!!!!

設計良好的Class 七月 29, 2006

Filed under: VC++/C++/C — kevinlin @ 12:28 上午

最近深研設計一個好的類別,就我的觀點來說,我認為類別應該當成一個自然界的一個東西,把它當成一個有生命的東西,我該給他什麼,怎麼給它,我要怎麼跟他要什麼,他會有怎樣的屬性,例如遊戲裡一張牌,身為牌的立場,他是屬於誰的,他的值是什麼,他該從哪裡被打到哪哩,他該不該讓人看到,這也許是一個很糟糕的設計,但是把物件當成有生命的東西我覺得是最棒的。

要設計一個好的Class真的是一種很大的挑戰,就跟寫編譯器的人一樣,要怎樣去設計一個資料型態,這非常值得深思熟慮的。

看了EffectiveC++裡的一個章節,是針對類別的設計的,我覺得非常值得牢記在心,所以貼一下來紀錄一下。上面提到的是理論性的,在課堂上常常聽到老師在比喻,動物有狗貓這些,但都太理論了,還是要實際一點比較好。

要怎麼設計一個高效率的Class呢?設計規範就在下面這些問題的答案中

  • 物件應該如何產生和銷毀??
  • 物件的Initializtion和assignment有何不同??
  • 物件用by value的方式傳遞給新型別,是什麼意思??
  • 對於新的型別而言,合法值是什麼??
  • 新型別能夠塞進某個繼承體制之中嗎??
  • 哪一種型別轉換是允許的??
  • 什麼樣的運算子和函式對於新型別是合理的??
  • 需要明白禁止使用什麼樣的標準運算子和函式嗎??
  • 誰有權力取用新型別members??
  • 新型別一般化的程度有多深??

上面問題的答案有些很難回答,但是卻是必須考慮到的。

 

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s