(我使用的Java,因此添加了「Java」作爲標籤櫃面它影響任何答案,但有些人可能會爭辯說,標籤是不必要的。)
股票列表 - 多態性設計
考慮以下:
我有一個陽臺/陽臺來圖形計劃。作爲最終計劃的一部分,我需要列出構建陽臺所需的任何材料。爲了簡化計算處理我已經分裂廡成不同節:
甲板以上 - 其中涉及塑料柵欄組件和固定件(即螺釘,螺栓)
甲板下 - 其涉及木材子幀和更多的固定。
...加上其他我不會深究的東西。
爲了討論:有可由於我們提供不同的擊劍設計100個不同的股票項目。每個項目都有其自己的類別,包括諸如尺寸,顏色,數量和ID參考等信息。
我想要做的是創建每個部分所需的修復列表,並將它們全部添加到最終列表中,而不會有任何重複。
最後的想法是顯示已處理計劃旁邊的項目名稱和數量。
因此,例如:
第1節要求:
- 25×螺絲A
- 15×螺絲B
- 5×螺絲C
第2節需要:
- 25×螺桿
- 15×螺絲B
- 5 x螺絲˚F
第三節要求:
- 45×螺絲B
- 50 x Screw C
- 24 x Screw G
總計列表
科1 +第2節+第3節= {材料全部名單}
我已經試過/考慮:
所有我已經螺絲上面提到的都有自己的班級,並且擴展了超級班「緊固件」。上述各科有一個變量:
ArrayList<Fasteners>
所以當我計算我可以添加的螺絲這個變量。一旦每個部分計算出需要的緊固件數量,我就把它們加在一起。
我曾考慮在「緊固件」超類中添加任何重複項目的「添加(修復)」方法。但是因爲有100個項目,我認爲編碼效率不高,並且懷疑有更好的方法來利用我在這裏設置的多態性。任何在線參考或提示將會有所幫助,並且非常感謝。
謝謝您的回覆。我不熟悉Enum和EnumMap。我做了一個快速搜索,聽起來很有希望。我會深入研究這個問題並回復你。 – cworner1
您是否使用AtomicInteger,因爲我可能正在使用線程? 「int」否則就足夠了? – cworner1
我用它,因爲你需要一些東西來包含int;你也可以使用整數並且隨時都可以得到它們,但是這更簡潔。我使用了AtomicInt,因爲它存在,我很懶惰:)當然,你可以編寫自己的。 –