我最近在整理公司項目中的類繼承關係,使用 Ruby 抽取出了一個類及其父類的組合,類似[[B,A], [C,A], [E,D], [F,B] ...]
其中 [B,A]
中 B 為子類,A為父類,根類不隻有一個,比如上例中的 A,D。我希望能能生成這些類的關係圖:
[
A=>[
B=>[F],
C
],
D=>[E]
]
類似上述結構,或者能夠示意出類的繼承關係就行。語言最好是 Ruby,其他語言也可以。
各位有什麼好的思路或者現成的庫可以借鑒嗎?
黄舟2017-04-22 09:00:50
先寫個生成各個類別下的子類別。
a = [['B','A'], ['C','A'], ['E','D'], ['F','B'], ['G','E']]
b = ['A','B','C','D','E','F','G']
b.map{|e| a.map{|d| d[0] if d[-1] == e}}
輸出:
[["B", "C", nil, nil, nil],
[nil, nil, nil, "F", nil],
[nil, nil, nil, nil, nil],
[nil, nil, "E", nil, nil],
[nil, nil, nil, nil, "G"],
[nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil]]
每行代表一個類別的子類別集合。