2010-09-25 10 views
1

我在尋找一款適合以下規格的設計圖案:對於在其外部進行修改的軟件包,最佳模式是什麼?

1-假設您有包裝動物,包括'動物','貓'和'狗'。

2-您必須修改'動物'中的方法行爲(也可以像在包中一樣在「貓」和「狗」中重寫),而不對包動物源代碼進行任何修改。

我確實爲這種目的找到訪問者模式,但問題是您必須修改包動物源代碼,包含'實施'包括接受方法的Visitable接口。但是,這是不允許的。

你有什麼建議?

回答

1

我對規格不太確定,但是您可以使用裝飾工具在動物包外創建類,它將使用組合來擴展正常行爲。

相關問題