2011-06-08 59 views
0

我有一個包含一些項目列表的頁面。每個項目都有一些屬性:評論,圖片,標題,評論表單和內容。看起來很簡單,創建一個名爲item的類,它將表示列表中的單個項目。如何判斷這應該分成兩個班還是保持在同一班?

但是,我還得到了一個'孤兒'項目,用於向列表添加新項目。例如,它具有添加圖像,編寫內容等所有相同的屬性,文本框,按鈕等,但它沒有存儲在數據庫中,並且它有一個新的「添加」按鈕,將其保存到數據庫,並將其保存到數據庫然後添加到列表中。

我仍然應該創建一個名爲item的類,並且只需要一個名爲isSaved的屬性來確定是否顯示「添加」按鈕,是否顯示註釋表單等等?

或者我應該創建2個單獨的課程,請撥打newItem並將其用於孤立項目,另一個savedItem並將其用於已經在db中的項目?

此外,這是在JavaScript中,所以我不認爲我可以使用很多的繼承。

+0

JavaScript可以很容易地使用原型繼承或只是jQuery擴展。海事組織你應該分開你的對象的數據與他們的用戶界面。有一個用於保存所有數據的「類」,然後將數據綁定到UI元素。 – Shawn 2011-06-08 18:47:28

回答

1

通常,您需要改變行爲或屬性的子類。如果唯一的區別是對象是否保存到數據庫中,最有可能的是,這不是子類的候選對象。添加一個屬性,如isSaved可能是最好的選擇。除非一個人在保存/未保存時的行爲與另一個人的行爲有根本的不同。

+0

不同之處在於,如果它未保存,那麼它需要顯示輸入標題/內容的文本框,而如果它保存了,則它只顯示保存的標題/內容和用於編輯它們的按鈕,以切換文本框,並且如果它只保存註釋表單變得可見。你會建議什麼? – 2011-06-08 18:58:12

+0

我不確定這是在創建什麼樣的環境,但是您描述的通常是查看代碼。我個人的觀點(儘管許多其他人都認同)是MVC(模型 - 視圖 - 控制器)體系結構(或其中的一些變體)是構建應用程序的正確方法。如果你保持這種邏輯分離,那麼這個代碼就不屬於你的模型。相反,該視圖將顯示錶單或根據「isSaved」是true還是false來顯示內容。 – 2011-06-08 19:06:15

+0

真的,謝謝,那就是答案,我將它分成兩個視圖並使用'isSaved'來確定顯示哪個視圖。乾杯 – 2011-06-08 20:11:45

相關問題