2011-05-24 49 views
1

我是一種新的編程,我希望如何進行一個簡單的建議。我只會解釋我的情況。我有一個網頁(Default.aspx),2個類(Class1,Class2)和15個ArrayLists。許多ArrayList到類

步驟1)在Default.aspx的當用戶點擊一個按鈕i創建的Class1的新實例:)

Class1 objClass1 = new Class1(); 

步驟2在Class,我有15周的ArrayList其中i數據添加到它們。我不知道元素的數量,我使用ArrayList對象,而不是簡單的數組。我用Class1中的數據填充所有15個ArrayLists。所有ArrayLists都包含10-150個項目。

步驟3)在Class2中,我需要所有15個ArrayLists在例程Class2BusinessRules上對它們執行一些業務規則。所以,我的代碼:

Class2 objClass2 = new Class1(); 
objClass2.Class2BusinessRules(ArrayList1, ArrayList2, etc..) 

所以,我把15個arraylist作爲參數傳遞給Class2。什麼是更好的解決這種情況? Class1和Class2應該分開存在,因爲它們是抽象對象,它們用於不同的目的。我不想將它們合併到一個類中。我不想讓這15個ArrayList成爲靜態或任何類型的全局變量,因爲網站上的併發用戶將使用它們。

可能的解決方案: 1)把所有的ArrayList在一個單獨的類 2)把所有的ArrayList成百科對象像字典

哪些這些2溶液優點/缺點?你能爲我的案例分享其他適當的解決方案嗎?你能告訴我接近我的案例的任何設計模式嗎?

回答

0

您可以將對Class1的引用傳遞到Class2中。在Class2中,您可以通過Class1引用訪問數組列表。 例如

Class2 objClass2 = new Class1(objClass1); 
+0

這是唯一的建議嗎? – user569008 2011-05-24 19:27:21

+0

@ user569008這對我來說似乎是最簡單的方法,因爲你只有一個對象可以通過,我猜將它們存儲在另一個結構中的第二種方法也可以工作。我最喜歡的是這種解決方案。 – 2011-05-24 19:56:08

+0

在Class1中,我有其他公共成員,比如我不想發送/允許Class2的屬性和方法。另外,我認爲從Class1發送如此多的數據並不是很有效,這些數據不會在Class2中使用。 – user569008 2011-05-24 20:05:21