pop面向過程的程式設計思想把電腦程式看作是一組命令的集合,即一組函式的順序執行。面向過程設計時,將整個程式切分成幾個函式模組,每乙個模組負責解決乙個問題。
oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的方法(method)。物件導向的程式設計把電腦程式視為一組物件的集合,每個物件都可以接收其他物件發過來的資訊,電腦程式的執行就是一系列資訊在各個物件之間傳遞。
所有資料型別(數字、字串、列表、元組、字典)都可以視為物件,當然也可以自定義物件。自定義的物件的資料型別就是物件導向中的類(class)的概念。
# 處理學生的成績
# 用dict表示學生的成績
std1 =
std2 =
defprint_score
(std):
print('%s: %s' % (std['name'], std['score']))
首先思考的應該是student
類,而不是程式的執行流程。student
資料型別視為乙個物件,該物件擁有name
和score
這兩個屬性(property)。
如果要列印乙個學生的成績,首先必須建立出這個student
物件,然後,給物件發乙個print_score
資訊,讓物件自己把自己的資料列印出來。
class
student
(object):
def__init__
(self, name, score):
# student物件有兩個屬性name, score
self.name = name
self.score = score
defprint_score
(self):
print('%s: %s' % (self.name, self.score))
lisa = student('lisa simpson', 87) # 建立乙個物件
lisa.print_score() # 給物件發資訊,即呼叫物件的方法
在oop中,有兩個重要概念:類(class)和例項(instance)。對應上述例子,student就是乙個類,lisa就是乙個例項。
物件導向的設計思想是抽象出class,根據class建立instance。
traits程式設計思想
首先引用書上的一句話 stl中心思想是把資料容器和演算法分開。迭代器是兩者結合的關鍵,那麼我們演算法當然是通過迭代器來對容器操作了,但是我們在演算法中經常需要得到迭代器的相應型別 比如 迭代器說指向的型別。那麼怎麼得到這些型別呢,當然你可以通過函式模板實現部分功能,也可以通過在迭代器裡自定義這些型別...
AOP程式設計思想
面向切面程式設計 這是最近接觸到的思想。看名字感覺很新奇,其實就是在底層實現攔截呼叫。通俗點,如果你不小心踩到狗屎,心理不平衡時,你可以在人人都會走過的路上放一坨狗屎,這樣,路過的人都會踩到狗屎。這樣你就實現了面向切面程式設計 個人理解 關鍵字 切面,攔截。用途 操作日誌,許可權驗證等。老規矩介面先...
C RAII程式設計思想
在c 程式執行的過程中免不了要進行資源的分配 尤其是在遊戲中!資源可以有很多種 貼圖 音訊 shader到控制代碼 字串這些東西都可以被稱為資源。資源的管理是專案中很重要的一輪,做得不好的話輕則記憶體洩漏 重則記憶體崩潰。而raii則是在c 專案中用於資源管理的一種重要的程式設計思想。c 中不可或缺...