簡體   English   中英

這個的設計模式?

[英]Design pattern for this?

我有一個對象數組。 我想通過一些步驟來傳遞它,這些步驟將修改數組中的每個對象。 這些步驟彼此獨立,並且可能並非在所有情況下都使用。 尋找可能描述此行為的設計模式。

謝謝

您可能正在尋找訪客模式。

我會使用CompositeCommand模式。 每個離散操作都是一個Command實例,在模式指定的execute方法中實現。 我會使用Composite因為你想要做超過1個命令。 實際上,您將擁有一個“復合命令”,您可以將其應用於數組的每個元素。

在我看來,你正在描述一個管道。

關於這種模式的一篇文章是http://stevenatkinson.wordpress.com/2009/03/02/pipeline-design-pattern/

也許你應該看看“責任鏈”模式。 這種模式的目標非常接近(如果不等於)您表達的內容。 一系列可響應性由幾個可以處理請求的共同組成。 在您的情況下,請求是您的數組; 每個命令都可以修改數組; 處理完數組后,每個命令都會調用Responsiblity鏈中的下一個命令。

GoF在“設計模式”中非常清楚地解釋了這種模式。

對集合的每個對象執行操作 - >迭代器或訪問者

封裝一系列操作 - >命令

訪客是進行操作的不錯選擇。

這一天,這是一個責任鏈

我認為訪問者模式更適合這個目的,即使我個人不喜歡使用它,因為它有時會違反對象封裝,因為它可以訪問所有訪問過的類實現細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM