[英]Class inheritance order for a simulation program
這是有關類繼承的正確順序的一個基本問題。
基本上,我試圖編寫一個數值模擬來解決物理模型,細節並不重要(我恰巧是用python編寫的),這是一種眾所周知的算法,可以迭代一定的空間來解決。
我認為我需要的課程是:
我還需要一個運行方法,該方法可以運行求解器並定期(在安裝程序中定義的時間段內)運行某些輸出函數。
您是否有Java背景?
首先,您沒有任何跡象表明您的任何類都應繼承自另一個類。 因此,您可能不需要像您想象的那么多的類。
求解器#包含實際的求解算法
如果它只是一個功能,您最好將其保留為自由功能。
輸出#包含所有圖輸出的句柄,並有權保存文件等。
如果這些函數沒有共享狀態,則可以很容易地將其作為一個模塊。
至於運行方法,只要將其粘貼在最方便的地方即可。 關於Python的好處是,您無需任何類就可以開始進行原型設計,並且只要發現自己在許多地方傳遞相同的數據集就可以重構為類。
有一個鼓勵使用組合而不是繼承的概念( http://en.wikipedia.org/wiki/Composition_over_inheritance ),所以我想說,如果您真的不需要繼承,請不要使用它(它們可以是獨立的)對象或函數,在python中類似於對象)。
如果使用對象建模,則run()應該在#Solver中。 回想一下,與其他語言一樣,在python中不需要接口的概念,因此您可以使用對象或具有所需算法的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.