的做法我有一個叫'documentsection'的類,它定義了稍後在HTML中組裝的文檔的一部分。其中包含屬性,以及哪些值是必需的(或有效的)相互依賴。例如:正確的OOP類邏輯的邏輯
a)有一個名爲'section type'的枚舉可以是'view'(在這種情況下,另一個名爲'content'的屬性包含要讀入的文件的路徑/文件名)。或者它可以是「文本」,其中「內容」屬性文本本身被放置在文檔中。
b)另一個名爲'Action'的枚舉類型可以是'append','prepend'或'replacebytag'類型。在最後一種情況下,另一個屬性變得相關,稱爲「tagtoreplace」。如果我們添加/預先添加,則此tagtoreplace屬性可以爲空。
表示這種相互依賴關係的最佳實踐方式是什麼?有幾種方法我能想到的,其中沒有一個美容臭氣:
當調用「生成文檔」的方法,經過屬性,以確保它們符合這一邏輯。
將檢查置於get/set方法中。與此相關的一個問題是,當我將節類型設置爲「查看」時,我可能不會將「內容」屬性設置爲之後的一行或多行 - 因此您無法拒絕在此時設置它的請求。
以某種方式使用不同的屬性來劃分用途 - 例如上面第一個示例中的'content'不應該用於一種情況下的文件路徑和另一種情況下的一堆HTML內容。這對我來說並不適合,但每個人都有不同的屬性似乎過分。
繼承子類,每個子類都具有不同的額外所需屬性集。由於節類型和動作類型可以有各種組合,所以我想不出一種優雅的方式來將所有這些邏輯都燒成這種結構。但我不是OOP大師!
有關最佳方法的任何想法?
謝謝!
我認爲有一個屬性,它的含義取決於另一個不聞的權利。 – svick
我同意 - 問題是,什麼是最好的實踐方式來實現b)項的功能/在需求)和? – Glinkot