面向對象的設計思想


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


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


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


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


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


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


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


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


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


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM