2012-11-10 47 views
1

一類A有3 boolean字段,並且有一組這樣的對象。我需要針對每個對象執行不同的處理,就其3個字段的組合而言。我應該採用什麼樣的模式?我應該使用哪種設計模式來針對不同的對象執行不同的方法?

public class A { 
    boolean a, b, c; 
} 

謝謝。


丹尼爾

+1

你是指'a = t,b = t,c = t',另一個是'a = t,b = t,c = f'等的邏輯嗎? –

+0

如果您需要依賴所有三種狀態執行不同的操作,那麼我將針對每種不同的操作實施一項策略,並通過開關或工廠選擇正確的策略 – KroaX

+1

@KroaX切換需要通過模式實現的內容。我會使用註冊表,從元組(布爾,布爾,布爾)到處理程序的映射。 –

回答

1

查一查registry模式。從本質上講,你可以定義一個接口AHandler併爲你想要處理的每個組合實現它。

然後,創建一個Map<A, AHandler>並用處理程序靜態初始化它。查找此映射以查找處理每個組合的處理程序。

+0

我剛纔簡化了這個問題:有很多'A'對象,不僅有8個對象,'A'的'equal'方法不是由這三個字段決定的,所以我需要確定一些字段的組合'A'對象對其類型進行分類,然後執行一些操作。 –

+0

你不必這樣做,我甚至沒有給出確切的方法:)基本的想法是有一個處理程序接口和一個從某些東西到處理程序實例的映射。如果包含狀態,則可以在變體中克隆處理程序。 –

相關問題