我正在爲autocad編寫一個加載項,但是我遇到了設計問題。我認爲這可以通過設計模式來解決。哪個設計模式用於繪製應用程序
我試圖繪製表,該表具有2份框架和頂/表面。所以我有這些3類:
- 繪製:此類驗證用戶的輸入和請求的插入點,創建所述框架和表面,並插入新創建的實例爲AutoCAD的DB。
- 幀:計算基於長度和深度的幀。
- 表面:計算基於長度和深度的表面。
我的問題是,如果由用戶給出的長度值大於最大值,比我必須產生2個或更多的表面。表面類也必須知道哪個表面是第一個和最後一個表面。並且Draw類也應該知道第一個結束放置第二個表面的位置。
我現在所做的是將一個名爲calcNumberOfSurface(int len)的方法放入Draw類中,並且在此方法中迭代遍歷表面的數量以創建每個Surface類的新instate。這個解決方案也有兩個問題,Surface類不知道它是第一個還是最後一個。並且不能定義第一個Surface的結束位置。我必須將這個實現到Draw類中。
是否有任何的最佳做法或使用該解決這個問題的一種設計模式?
以我的經驗,如果你去到一個項目計劃使用一種設計模式,你會在它複雜化,並最終花費方式有更多的時間就可以了。一旦我看到可以有效使用的地方,通常我會重構爲設計模式。很多時候設計模式會投入很多你不一定需要的東西,這就是爲什麼我採取這種方法。所以我等到一個燈泡點擊「嘿這種模式非常適合」開始使用它們,否則事情最終會變得比他們需要的更復雜。無論如何,這只是我的偏好,我相信其他人可能會不同意。 – Preston
「我的問題是,如果用戶給出的長度值大於最大值」 - 什麼是最大值?我不明白爲什麼你必須創建多個曲面。 – rro
@preston也許你是對的,但我沒有足夠的DP經驗來確定我是否需要一個以及哪一個。我的想法是在這裏問一下,然後有人可以認出DP。 – user1890239