試圖找出設計分層結構的最佳方法。一個例子就是體育聯盟結構。分層設計所需的建議
冰球聯賽有兩個會議A和B.
會議A有分歧東,西
會議B有師北,南,東,西。
團隊可以按部門或會議顯示。
實際上只有一個聯盟,它可能有多個會議,每個會議都有多個部門。每個人的大小可能不同。主要關心的是當我需要查詢時。例如,佈局結構的好方法是什麼,這樣我就可以取得部門中的所有團隊,會議中的所有團隊或其他團隊部門或會議中的所有團隊,而不會過於繁瑣。
任何幫助,非常感謝。 :)
試圖找出設計分層結構的最佳方法。一個例子就是體育聯盟結構。分層設計所需的建議
冰球聯賽有兩個會議A和B.
會議A有分歧東,西
會議B有師北,南,東,西。
團隊可以按部門或會議顯示。
實際上只有一個聯盟,它可能有多個會議,每個會議都有多個部門。每個人的大小可能不同。主要關心的是當我需要查詢時。例如,佈局結構的好方法是什麼,這樣我就可以取得部門中的所有團隊,會議中的所有團隊或其他團隊部門或會議中的所有團隊,而不會過於繁瑣。
任何幫助,非常感謝。 :)
真的有兩種方法可以採取。其一是「純粹」的設計,你實際上有一個層次:
League hasA collection of Conferences
Conference hasA collection of Divisions
Division has a collection of Teams
你的聯賽則需要通過法司,會議或全部給球隊的集合。根據你需要做的事情,也許你只有聯盟提供迭代器而不是集合。
第二種方法是平的或者更databasey:
League hasA collection of Teams
Team hasA Conference
Team hasA Division
通過這種方法,你可以輕鬆地操縱根據司和會議團隊和過濾器,但它是很難做的東西爲司或會議(你必須通過所有的團隊來找出哪些部門存在)
這一切都歸結到手頭的問題。我的主要問題是:
我想不出一個很好的理由不使用hierarhy方法。
我不知道你正在使用哪種語言,但假設你可以使用多態和類,我會說使用設計模式,如Composite Pattern。
設計你「複合」作爲會議類和「葉」作爲devision類。
這個想法是讓會議類能夠添加devisions到一個孩子列表,然後從調用一個函數,能夠對這些孩子執行任何必需的操作。每個會議都可以有其他的會議,因此可以在不同的會議和他們的設計之間進行溝通。
這一切都取決於你如何編碼它以及你需要執行什麼操作。