python基於物件導向的分析和設計

來源:互聯網
上載者:User

1 原文地址

http://learnpythonthehardway.org/book/ex43.html

2 引言

2.1 譯者

特別在程式設計語言的學習過程中, 通常會糾結在語言本身的細節中, 然後發現學習的過程變得越來越枯燥, 以至於最後放棄了這門才剛剛起步的語言, 投身到新的一個輪迴中. 因為他們忘記了: 快樂來自於創造. 當然起先掌握一門語言還是很有必要的.

2.2 作者

我(以下文中的我均指作者)將描述在運用python的語言建立一些東西的過程, 這些描述更適用於運用python物件導向的特性的時候. 這裡, 我所說的過程是面向通常問題時, 你需要一步一步完成的步驟, 當然這並不意味著你需要奴役於這些條條框框. 它通常是解決很多編程問題的一個起點, 但並不是唯一的一個方法. 你可以選擇, 也可以不選擇.

具體的過程如下:

用寫和繪畫的方式, 對問題進行描述

從第一步中提取出關鍵的概念, 然後對它進行研究

對這些關鍵概念建立類的層次關係和對象圖

編寫相應的類代碼和測試代碼

重複進行改善

整個過程是從上至下的, 也就是說, 它是從一個很細微的, 很抽象的一個想法出發, 慢慢地通過不停地改善逐漸成為能夠編寫的執行個體.

首先, 我會寫出關於這個問題的所有東西, 並盡自己的能力進行思索. 也許我會畫一個或兩個示意圖, 也許是像地圖一樣的東西, 甚至給自己寫一系列描述該問題的郵件. 這讓我有一個方式來表達關鍵性概念, 也讓我清楚自己對這個問題有多少的瞭解.

然後, 我會瀏覽這些紀錄, 映像以及相關的描述, 並且將最主要的部份提取出來. 有一個簡單的方式能夠實現它: 簡單的製作一個 名詞動詞 的列表, 然後給出兩者之間的關係. 這些給了我一個很好的列表, 有助於我在下一步中, 對於類名, 對象名和方法名的確定. 我保留這份由概念組成的列表, 然後對於任何一個我不能夠理解的內容進行改善.

當我擁有這樣一份列表的時候, 我可以建立一個簡單的由概念組成的大綱或是樹, 以及它們如何成為類. 你通常可以拿著你的名詞單, 並開始問自己 "這個名詞是不是和別的, 意思相同? 這意味著它們有一個相同的父類, 那麼這個父類叫什麼呢?" 不斷地重複提問回答地過程, 直到建立一個類別關係圖, 樹圖. 然後拿著你的動詞表, 看這些動詞是否是類的函數名, 然後將其放入到樹圖中.

當類的層次圖建立後, 我開始用代碼寫基本的架構, 只有類名以及屬於它們的函數, 沒有其他內容. 然後寫運行該程式的測試, 並且確信剛建立的類是有意義的, 並且能夠正確地執行. 有時, 我會先寫測試, 有時, 一邊寫測試一邊寫代碼, 直到完成所有的工作.

最後, 不斷的重複, 不斷的改善, 在我添加更多的實現的時候讓它變得越來越清晰. 如果我在某個概念或是某個問題無法解決的時候, 我會停下來, 再繼續之前會重複上述的過程, 直到這些概念變得清晰.

接下來, 我會將上述的過程運用到一個遊戲引擎實現的過程中.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.