這是玩具問題處理多重構圖:Python的組成:在一個盒子裏的彈珠
有兩個對象類,代表彈珠和框。一個大理石總是包含在一個盒子裏,而一個盒子有一個用於表示當前在其中的大理石的類方法。大理石,一旦實例化,應該能夠傳遞給任何其他現有的盒子(或者甚至可能是另一個對象的可擴展性)。
在Python中實現多個'has-a'組合的最佳模式是什麼? (我發現單曲有一個例子,但沒有偶然發現一個多重作曲的例子)。
我的第一個猜測是,通過Box類中包含的方法(例如create_marble,pass_marble,delete_marble方法)來處理Marble對象,並在Box類中維護一個Marbles列表作爲屬性。但是,這真的是最好的方式嗎?
」但這真的是最好的方法嗎?「是。 –
好的。所以Box可能應該有一個傳遞大理石處理方法的超類? (如果我定義其他包含對象,例如Bin,則我可以保留DRY。) –
保持含糊不清。 'class MarbleContainingObject' :) –