繼承Inherit、介面Interface的使用時機及建議

類別繼承Inherit建議

類別階層就是抽象類別及實作類別所建構出來的Class Tree:
  • 類別階層由上至下的定義應該是由廣義進入狹義;
    例如:動物Animal --> 貓Cat、狗Dog…!
  • 宣告型別時最好保留彈性;
    例如:薪水,現在的薪水應該只有整數,但為了保險起見,使用浮點數型別也不無不可!
  • 審慎設定成員的存取層級;
    例如:姓名、郵件給所有類別存取,就設定Public,但薪資應該是要保密,就設定Private,獎金計算可能在不同部門的類別有不同的計算方式,可就設定為Protected。

繼承Inherit使用時機

  • 衍生類別應該隸屬於父類別的一種,而不是有關聯;
  • 重複架構的程式碼不斷出現,使用繼承可以提高程式的重複使用性;
  • 繼承建議在六層之內,以免程式太複雜;

介面Interface使用時機

  • 如果兩個類別之間只存在著某些關係
  • 需要將宣告與實作分開;
    使用Inherit,我們修改父類別的程式碼,可能導致衍生類別的程式碼錯誤;相反的,Interface在宣告成員沒有改變之下,我們可以任意改變各個成員的實作,而不會互相影響。
  • 需要多重繼承時;
    一個類別只能Inherit一個父類別,但一個類別可以繼承多個Interface。
  • 特別情況;
    例如:結構不能類承自類別,但可以實作介面。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。