物件導向的設計思想

來源:互聯網
上載者:User

標籤:多個   不同類   彙總   obj   同方   抽象   物件導向   自己   分享   

物件導向的設計思想(OO思想,Object Oriented)
1.看到一個需求的時候不應該直接寫代碼。應該先考慮有哪些類。


2.考慮類的時候,類一定是一類事務的描述,不能太局限。


3.考慮類的時候需要考慮主要的類,也就是需要和業務、動作、事件緊密相關的類。
      不要考慮類的時候太發散。先考慮主要的類,然後由主要的去推,有點你考慮的類,可能只是
      現有類的一個屬性。考慮屬性的時候,需要注意,如果有屬性當前類中的其他屬性相比變化度
      太高的話,應該考慮剝離出去(那也要具體情況具體考慮,但是一般來說是這樣)。
      
4.屬性:不需要把該類的所有屬性都聲明出來,只需要自己用到的即可。如:人類,屬性成千上萬,
      不用全部寫出來,只需要根據需求,聲明出自己需要的即可。
      
5.屬性一般會私人,提供get、set方法區操作。因為如果直接把屬性的許可權開放,那你就很難限定什麼
      對象可以訪問,如果是方法的話,我如果想讓某些對象訪問,我就可以在get、set中做限制,這樣就可以
       更好的去控制我自己的屬性被訪問的許可權,至少比屬性直接開放要安全,根據物件導向的原則,所以一般屬性都會私人。


6.方法:考慮封裝方法的時候,你就站在該類的立場去考慮方法。
      如:汽車類的方法,假設你是汽車,你覺得你會有哪些方法,以汽車做主語去考慮:如,我可以跑
      
7.隱藏和封裝:減低耦合度。類的單一職責 "自己的事自己處理","自己只處理自己該處理的,不要做太多雜事"
      不要和自己緊密度不高的類和對象有太多的牽連,只和自己最緊密的類和對象處理。


8.要增加或強化功能的時候,首先應該想的擴充(重寫或重載等),而不是修改。彙總而不是繼承。


9.當同等類型的,相似類型的類過多的時候,我們又會變得寫相同或相似代碼很多很多了,這時候我們就該想到了繼承。


10.有了繼承同等類型的類中的代碼是少了很多,但是執行或處理這些對象的驅動類還是得分情況處理很多的不同類對象。
      所有在此時,我們就可以採用多態的方式,用父類引用指向子類對象。從而解決了處理多個對象而產生的不同方法了。
  ******(繼承是需要謹慎考慮,因為繼承是耦合度提高的重要體現之一)*****


11.因為繼承是很強耦合性的,且繼承只能繼承一個類,也就是說一個子類有且只有一個父類。所以如果有要繼承多個父類的情況,
         那就可以用實現。也就是把父類定義成介面。一個類是可以實現多個類的。並且介面也能實現多態。


12.和大家分享一下我對介面和抽象類別設計時候的細微的差別:不太會描述,望大家理解。
   1>.如果你只是對一類事物和幾類事物的明確的公用特性和功能描述,你就用介面。
   2>.如果你現在設計一個已經比較明確類中有些是要實現,但是還沒想好如何?,那你就設計成抽象類別。
   
12.***多態:用父類或父介面引用指向子類對象。物件導向的最核心,最精華的思想,也是後期擴充和維護的一個重要指標,但是也不能隨意亂用喔,不要過度設計。(多態是要在繼承和實現的前提下的)


13.設計是沒有對錯的,只是要把握一個度,不能不設計,也不要過度設計,根據實際情況設計,設計也不要急於求成,和一步到位,設計是一個循序漸進的,
         也不要刻意和條條框框去框死你的項目,不要為設計而設計。
---------------------
跑步蝸牛
來源:CSDN
原文:59638426?utm_source=copy
著作權聲明:本文為博主原創文章,轉載請附上博文連結!

物件導向的設計思想

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.