背景:來自Perl世界,我目前正在學習Python中的新作 作業。除了完成這項工作外,我還試圖通過閱讀SO,Python 文檔和各種文章,讓更多的「真正的OOP」和「pythonic」思維融入我的大腦細胞流。Python中的BaseBean反模式
現在Anti-pattern頁的面向對象的設計部分,維基百科列出了此 BaseBean,其上its own page被描述爲:
在面向對象的編程中,BaseBean是一個實用目的從中 混凝土實體派生(通過子類化)。正確的設計建議 繼承的功能應通過委託提供。 BaseBean是反模式的示例(其中 名稱的「Bean」部分來自通用實體 對象或JavaBean的標準Java命名約定)。
也許這是因爲我沒有使用Java的經驗,也許是因爲其他原因, 但我在解決這個問題時遇到了麻煩。不過,我是 ,感覺幾行代碼在這裏會勝過千言萬語。
任何人都可以幫助澄清這對我嗎?最好在Python中使用一個簡單的例子?
我很抱歉,但我不覺得你的例子很清楚 - 它是如何說明了反模式?而維基百科的文章首先不清楚(例如,它們是什麼意思的「實用類」?;跨什麼實現?;什麼向量?)。 –
維基百科示例中提到的內容是使用更一般的類(列表或向量)* AS *您的訂單類。考慮訂單類。理想情況下,它應該包含訂單元數據和訂單項列表。因此,維基百科中引用的示例使用您的「實用程序」(矢量/列表)類* AS *您的訂單類。這不是一個「isa」關係 - 它是一個「hasa」關係。訂單包含訂單項列表......它們不是訂單項自身的列表。 –