2016-07-06 27 views
-1

我正在研究嵌入式項目,該項目讀取操縱桿並相應地在3d空間內移動執行器。現在我想通過串行線路提供一個用戶提示作爲用戶輸入的替代選項。用戶輸入將是G代碼。在實現用戶提示方面是否有完善的設計模式?

https://en.wikipedia.org/wiki/G-code

我不是沒有經驗的創建C代碼,但是,我從來不必處理文本輸入。這種軟件是如何以易於閱讀/可保存的方式實現的,是否有完善的設計模式?

+0

'stdio.h'的'gets()'函數得到'stdin'。 –

+1

OT:@EliSadoff'gets()'不是C,因爲很好的理由,請不要**使用它!改用'fgets()'。 – alk

+5

@EliSadoff'gets'是如此邪惡和邪惡,它不再是標準庫的一部分,應該避免帶有極端的偏見。 – WhozCraig

回答

2

不,用戶提示沒有「設計模式」。

設計模式充其量只是邊際價值。他們是在對大多數程序員無法爲自己思考的明顯災難做出反應時創建的。因此,他們得到了一個以前想法的冗長目錄,以及關於如何將他們的想法映射到這些石制同系物上的詳細說明。

下面是一個「設計模式」的精彩例子:它以某種方式使用全局變量EVIL。所以,相反,實例化一個Singleton類(如果你不小心 - 將需要你使用SingletonFactory的代理服務[但我離題]),並提供「getter」和「setter」方法來訪問封裝數據。結果:在窗臺上,而不是一行代碼,在窗臺上提供十五行代碼。廢話!

許多人會對這一說法採取冒犯行爲。如果他們想到這一點,他們會意識到自己已經成爲了一個假冒的受害者。設計模式就像一個「共同核心」英語作文作業中的標準:假設學生完全無法自己創造出富有創造性,結構合理的英語,因此就如何說以及如何說出提供可笑的詳細「指導」它。

想你自己。這是任何人都可以在任何地方給你的最好建議。

+0

ooooh .... GoF警察會幫你解決這個問題。 :) – evaitl

+3

爲了公平起見,一些非常相同的人會聲稱 - 使用全局變得糟糕的形式也會聲稱使用Singleton模式是不好的形式。的確,有幾個相同的原因適用。我全都爲你自己思考,但我也是從我的經驗和其他人的經驗中受益。設計模式的使用本質上不是代碼質量的合理度量,但經過深思熟慮的選擇和應用的設計模式*可以*幫助您編寫高質量的代碼。 –

+0

@JohnBollinger設計模式,就像工具箱中的其他工具(例如全局變量)一樣有其用途。要使用或不使用,應該謹慎決定(即不要苛刻地)。我使用了很多對象池,因爲我覺得它們很有用。我還創建了一個單獨的[各種各樣的],結合了一堆項目[否則會是全局的]。任何使用的技術都應該在特定的環境中進行評估:我們爲什麼要使用它?它在這個特定的實例中提供了什麼價值?它解決了什麼問題(或可能創建)? –

相關問題