面向?qū)ο蟪绦蛟O(shè)計

類的設(shè)計技巧

1.一定要保證數(shù)據(jù)私有
2.一定要對數(shù)據(jù)初始化
3.不要在類中使用過多的基本類型
4.不是所有的域都需要獨(dú)立的域訪問器和域更改器
5.將職責(zé)過多的類進(jìn)行分解
6.類名和方法名要能夠體現(xiàn)他們的職責(zé)
7.優(yōu)先使用不可變更的類

繼承設(shè)計技巧

  1. 將公共操作和域放在父類
  2. 不再使用受保護(hù)的域
  3. 使用繼承實(shí)現(xiàn)“is-a” 關(guān)系
  4. 除非所有的方法都有意義,否則不要使用繼承
  5. 在覆蓋方法時,不要改變預(yù)期的行為
  6. 使用多態(tài),而非類型信息
  7. 不要過多的使用反射

類之間的關(guān)系

  • 依賴(uses-a)
  • 聚合(has-a)
  • 繼承(is-a)

依賴(dependence)

依賴是最明顯、最常見的一種關(guān)系。

如果一個類的方法操縱另一個類的對象,我們就可以說一個類依賴另一個類。

應(yīng)該盡可能的減少依賴關(guān)系,從軟件工程的角度來講,就是讓類之間的耦合度最小。

在A的方法把B作為參數(shù)類型進(jìn)行傳參?

聚合(aggregation)

即”has-a“關(guān)系,聚合意味著類A對象包含著類B的對象。

繼承(inheritance)

即“is-a”關(guān)系。繼承就是類A的拓展類B,但類B不但包含類A的方法而且還會多出一些功能。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 父類與子類 在Java術(shù)語中,如果C1類擴(kuò)展自另一個類C2,我們稱C2為父類,也稱超類或基類,稱C1為子類,也稱次...
    Steven1997閱讀 1,325評論 1 2
  • 對象的創(chuàng)建與銷毀 Item 1: 使用static工廠方法,而不是構(gòu)造函數(shù)創(chuàng)建對象:僅僅是創(chuàng)建對象的方法,并非Fa...
    孫小磊閱讀 2,186評論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,684評論 1 32
  • 1、.java源文件: 一個以”.java“為后綴的源文件:只能有一個與文件名相同的類,可以包含其他類。 2、類方...
    Hughman閱讀 1,757評論 1 9
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,228評論 0 4

友情鏈接更多精彩內(nèi)容