我的場景如下所示:針對消息對象設計的OOP建議
當您通過消息類型向不同目標發送消息時,我有一個消息系統。
這是我目前的設計:
Abstract class: MessageKindAbs
MessageKind1 extends MessageKindAbs
MessageKind2 extends MessageKindAbs
MessageKind3 extends MessageKindAbs
等..
現在MessageKind3
是一種特殊的。它的目的是將MessageKind1
或MessageKind2
的內容發送到日誌進程。
所以我裏面MessageKind3
創建的MessageKind3Items
列表:
list<MessageKind3Item> MessageKind3ItemList...
MessageKind3Item
包括MessageKind1
/MessageKind2
進行日誌記錄的信息。
所以基本上會發生什麼是每個MessageKind3Item
還包括MessageKindAbs
類型。
但這對我沒有意義。
例如:向DB隊列發送消息,並記錄MessageKind1
持有的信息和MessageKind2
持有的信息。
所以我的面向對象設計有點複雜。
任何人都可以幫我找到我的路嗎?
我可以在MessageKind3Item
裏創建另一個實例類型MessageKindAbs
但我不確定它是否有意義。
感謝, 射線,
我的意思是引用類型不是實例。 2.我試圖使用面向對象爲了最小化緊密耦合。 – rayman
對不起,我不確定你的意思。我的建議是把日誌項目放在一個日誌項目中,而不是不同類別的實例 - 這將減少組件耦合和相互之間的知識。 – Vitaly
MessageKind3假設做更多的事情thens只是日誌記錄。 MessageKind1/MessageKind2的記錄只是一個例子。它可以例如將這些消息發送到電子郵件服務。我只是舉了一個例子。事情是,每個MessageKind對象應該被尋址到不同的目的地,而MessageKind3持有的MessageKind1和MessageKind2的信息 – rayman