Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OO training homework 2 review and summary

hatelove
July 23, 2012

OO training homework 2 review and summary

將大家 homework 2 需注意的地方,延伸思考的部分提出來

hatelove

July 23, 2012
Tweet

More Decks by hatelove

Other Decks in Technology

Transcript

  1. - 2 - 延伸思考 • 增加了非Manager,但會code review的角色 – 如:資深工程師、顧問 •

    增加了不會code review的Manager – 如:HR manager • 每個manager的CodeReview方式不同
  2. - 3 - 整理 • 職責 – Program屬於場景 – Builder,

    Factory屬於工廠 • 命名 – Pascal & camel – GetsXXX or SetsXXX • Magic number or magic string – hard-code的字串或數字(非0 or 1) – Extract to member/field/property with readonly • readonly & constant – Enum, config, database or resource
  3. - 4 - 效能 • 比較字串 – a.ToUpper() == “Y”

    – string.Compare(a, “y”, true) ==0 • 宣告為virtual • 透過try/catch攔exception,控制流程
  4. - 5 - 用法 • parameter建議不要複雜化 – 三元判斷式 – Function

    • Console.WriteLine() – (string format, params object[] arg) – boxing • DRY – 多型 – 判斷式執行子句,只放因為條件不同而不同的部分 • 避免使用預設存取修飾詞
  5. - 6 - 設計 • 存取修飾詞 – public: 從外部看這個物件的觀點 –

    protected: 從子類看父類的觀點 – private: 從物件本身看自己的觀點 • 設計為virtual時,考慮是否應為abstract • 使用的角度 – interface • 物件的本質與共通性 – abstract • 系統的抽象程度看interface,重用程度看abstract