python學習之面向對象程序設計的一些思考
將屬於一類的對象放在一起:
如果一個函數操縱一個全局變量,那麽兩者最好都在類內作為特性和方法實現。
不要讓對象過於親密:
方法應該只關心自己實例的特性,讓其他實例管理自己的狀態。
簡單就好:
讓方法小巧起來,一般來說,多數方法都應在30秒內被讀完,盡量在代碼的行數控制在一頁或者一屏之內。
小心繼承,尤其是多繼承:
繼承機制有時很有用,但也會在某些情況下讓事情變得過於復雜,多繼承難以正確使用,更難以調試。
在需要思考用什麽類以及類有什麽方法時,可以用以下方法。
1:寫下問題的描述,把所有的名詞、動詞和形容詞加下劃線。
2:對於所有的名詞,用作可能的類。
3:對於所有的動詞,用作可能的方法。
4:對於所有的形容詞,用作可能的特性。
5:將所有的方法和特性分配到類裏。
當我們對即將做的事能抽象出一個模糊的對象草圖時,就可以考慮類和對象之間的關系以及他們的作用。剩下的就是逐漸的精煉模型。
1:寫下一系列的使用實例,也就是程序應用時的場景,試著包含所有的功能。
2:一步步考慮每個使用實例,保證模型包括所有需要的東西。如果有些遺漏的話就添加進去,如果某處不太正確則糾正,直到滿意為止。
python學習之面向對象程序設計的一些思考
相關推薦
python學習之面向對象程序設計的一些思考
函數 對象 程序 以及 有時 使用實例 狀態 情況 讓其 將屬於一類的對象放在一起: 如果一個函數操縱一個全局變量,那麽兩者最好都在類內作為特性和方法實現。 不要讓對象過於親密: 方法應該只關心自己實例的特性,讓其他實例管理自己的狀態。 簡單就好:
王之泰201771010131《面向對象程序設計(java)》第十七周學習總結
系統 方案 java se not 調試 編程練習 current except exceptio 第一部分:理論知識學習部分 第14章 並發 線程同步 多線程並發運行不確定性問題解決方案:引入線 程同步機制,使得另一線程要使用該方法,就只 能等待。 ? 在Java中解決多
PHP面向對象程序設計之繼承性
調用 truct var_dump 一個 sch span test dump div 一、類繼承的應用 <?php class A { public $name = "zhangsan"; public $age = 20; publi
Python基礎(16)_面向對象程序設計(類、繼承、派生、組合、接口)
特征 abc 有效 相同 現實 父類 student 需求 ict 一、面向過程程序設計與面向對象程序設計 面向過程的程序設計:核心是過程,過程就解決問題的步驟,基於該思想設計程序就像是在設計一條流水線,是一種機械式的思維方式 優點:復雜的問題的簡單化,流程化
2017面向對象程序設計(Java) 第1周學習指導及要求(2017.8.24-2017.8.27)
令行 str applet 面向 學習目標 對象 com 變量 課程學習 2017面向對象程序設計(Java) 第1周學習指導及要求(2017.8.24-2017.8.27) 學習目標 了解課程上課方式及老師教學要求,掌握課程學習必要的軟件工具; 簡單了解Java特點
《面向對象程序設計課程學習進度條》
table 第一周 環境 課堂 font enter 面向對象 borde 時間 周次 (閱讀/編寫)代碼行數 發布博客量/博客評論數量 課堂/課余學習時間(小時) 最滿意的編程任務 第一周 45/20
201671010132《面向對象程序設計課程學習進度條》
小時 行數 發布 bsp borde 時間 程序設計 body 面向對象 周次 (閱讀/編寫)代碼行數 發布博客量/博客評論數量 課堂/課余學習時間(小時) 第1周 20/6 1/1 6/3 第2周 200/ 30 1/0 6/6 …… 累
201671010118 2016-2017-2《Java程序設計》 面向對象程序設計課程學習進度條
作業 面向 order 第八周 進度 整數 任務 發布 面向對象 周次 (閱讀/編寫)代碼行數 發布博客量/博客評論數量 課堂/課余時間學習(小時) 最滿意的編程任務 第一周 20/5 1/1 6/4 實驗一作業 第二周 150/30 2/1 6/5 實驗二作
朵的面向對象程序設計課程學習進度條
課堂 ava 學習 span 數字 課程 -s 編寫 進度條 周次 (閱讀/編寫)代碼行數 發布博客量/博客評論數量 課堂/課余學習時間(小時) 最滿意的編程任務 第1周 31/16 1/1 6/6 HelloJava
python學習_day24_面向對象三大特性之繼承
wan 桌子 python super 特性 sub zhong 多重 family 一、繼承的定義 繼承在python中是創建一種新類的方法,新建的類可以繼承一個或者多個父類,其中父類稱為超類或者基類,新建的類稱為派生類或者子類。繼承表達的是什麽是什麽的關系,如:高桌
python學習_day26_面向對象之封裝
style code 實例 rop 所有 nbsp 本質 ont 隱藏 1、私有屬性 (1)動態屬性 在python中用雙下劃線開頭的方式將屬性隱藏起來。類中所有雙下劃線開頭的名稱,如__x都會自動變形成:_類名__x的形式。這種自動變形的特點是: a.類中定義的_
面向對象程序設計學習日記
方案 完全 一半 比較 駝峰 ogl uid pri 也會 面向對象程序設計學習日記 持續更新(可能),更新時間不限,催更不管,腰斬就跑(逃~) Date:2018.5.1(Elevator_V1.1) 前言 五一節每年都過得相當委屈,全國勞動者放假,學生雖然跟著放假卻因
張雲飛201771010143《面向對象程序設計(java)》第一周學習總結
sta 開放 nbsp 相同 知識 font 程序設計 ria 兩個 第一部分:課程準備部分 填寫課程學習平臺註冊賬號, 平臺名稱 註冊賬號 博客園:www.cnblogs.com https://www.cnblogs.com/Fairber/
王艷 201771010127《面向對象程序設計(java)》第一周學習總結
文件的 會有 工具 過程 cmd 名稱 開發環境 機器 ext 王艷 201771010127《面向對象程序設計(java)》第一周學習總結 第一部分:課程準備部分 填寫課程學習 平臺註冊賬號, 平臺名稱 註冊賬號 博客園:www.cnblogs.com
楊蓉慶201771010135《面向對象程序設計(java)》第一周學習總結
開發環境 嘗試 總結 cin 一次 9.png 助教 course borde 第一部分:課程準備部分 填寫課程學習 平臺註冊賬號, 平臺名稱 註冊賬號 博客園:www.cnblogs.com 艾特大家 程序設計評測:https://pint
趙棟 201771010137 《面向對象程序設計(java)》第一周學習總結
world 單詞 load .cn pri 保存文件 新建 過程 應該 《面向對象程序設計(java)》第一周學習總結第一部分:課程準備部分 平臺名稱 註冊賬號 博客園:www.cnblogs.com/ https://www.cnblogs.
達拉草201771010105《面向對象程序設計(java)》第一周學習總結
www 創建 垃圾收集 clas 本地文件 常用 進行 重用 等等 達拉草201771010105《面向對象程序設計(java)》第一周學習總結 第一部分:課程準備部分 填寫課程學習 平臺註冊賬號, 平臺名稱 註冊賬號 博客園:www.cnblogs.c
孔維瀅201771010110《面向對象程序設計(java)》第一周學習總結
環境變量 ali 源文件 height 總結 img 實例 zip logs 第一部分:課程準備部分 填寫課程學習 平臺註冊賬號 平臺名稱 註冊賬號 博客園:www.cnblogs.com Weiron 程序設計評測:https://pintia.cn/ 11
201771010108韓臘梅《面向對象程序設計(java)》第一周學習總結
成員 體系結構 簡單的 2.7 -i ssp 電腦 文件夾 客戶端 第一部分:課程準備部分 填寫課程學習 平臺註冊賬號, 平臺名稱 註冊賬號 博客園:www.cnblogs.com 木子林 程序設計評測:https://pintia.cn/
狄慧201771010104《面向對象程序設計(java)》第一周學習總結
修改 java語法 第一部分 cells 虛基類 面向對象 數據庫 學習 java開發工具 第一部分:課程準備部分 填寫課程學習 平臺註冊賬號, 平臺名稱 註冊賬號 博客園:www.cnblogs.com https://www.cnblogs.co