[英]How do you incorporate Java's main function into your design?
你實際上可以跳過這第一部分,因為它會讓人感到困惑,但我會把它放在這里,因為我想知道是否有其他人有同感。 我是CS本科生,已經使用Java 3年了,我仍然覺得很難理解如何將Main功能包含在我的設計中。 將它自己放在一個類中是錯誤的,但將它插入另一個類文件也感覺不對。 我認為后者是這樣的,因為它不適合同類的其他人使它不相干。 例如,我不能只在我的DocumentReader對象上粘貼一個main函數。 它與對象無關。 另一方面,我不能只創建一個只有一個main函數的Main類,因為在面向對象的編程中,你應該根據對象來思考,有效地創建一個微型世界。 對於那個圍繞單個物體的微型世界來說,它只是存在而只是存在。 它不是故事中的敘述者和角色,因為它同時沒有任何作用。 我更喜歡C的主要功能,它與所有東西分開。 它使故事的敘述與彼此相互作用的人物分開。
我想知道專業人員如何將main方法與其余代碼混合使用。 如何使其與其他設計相適應。 而且,它們通常是長還是短?
我將main()
函數保存在一個名為my project的類中。 使用命令行啟動應用程序時,使用此鍵入:
java com.domain.project.ApplicationName
在我看來,有一個簡單的Launcher名稱而不是:
java com.domain.project.AClassWhichDoesntLookLikeAMainClass
或者(太)經典
java com.domain.project.Launcher
但是對於這個類來說不要太費心,它可能永遠不會被這樣的最終用戶執行。 腳本或其他可執行文件將在大多數時間啟動它。
另外,你的main()方法會變得很重,特別是如果你真的使用main args來獲得更多的CLI選項。 也許它值得擁有自己的階級。
好吧,我有時想創建一個*Application
類並將它放在那里。 對於DocumentReader,我有一個DocumentReaderApplication
,我將放置main函數,也可以處理任何啟動選項/命令行參數。 如果它是GUI應用程序, *Application
類將啟動主窗口。 畢竟,該計划的切入點必須在某個地方,對吧?
具有main方法的類充當入口點。 因此,將所有內容放在該類中是一個好主意,這是特定於該入口點的。 委派其余的。
Hardcore OOP的人可能不喜歡這個,但我只在我的根項目包中有一個名為Main
的類,它包含main方法。
我的想法是你的程序需要從某個地方開始,但把它放在另一個類中只會令人困惑。 我將Main()
視為一個特殊情況,值得擁有自己的類。 除了本課程中的設置信息,我沒有其他任何內容。 這清楚地表明這是我整個程序的起點(有時是結束點)。
主要方法僅在您自己啟動獨立應用程序時使用。 對於大型應用而言,世界正逐漸遠離它,因為它們變得如此之大,因此您需要進行模塊化。
常見的方法是針對Java EE的WAR / EAR和OSGi包。
我從事Java Web開發,並且已經有多年了。
我從來沒有專業地輸入“public static void main”這幾個字。
在觸發單元測試和其他本地任務的ant任務之間,然后將WAR存檔部署到服務器,主方法不屬於Web工作的范圍。
在main()方法中保留最少的代碼。 使用委派,因為它有助於在出現錯誤時本地化您的問題。 如果您在Main類或main()方法中添加業務邏輯甚至UI代碼,它往往會增長。 這適用於面向對象的方法以及過程編程。
我在每個其他類中都包含一個main方法,它可以有一些合理的獨立行為,並且僅用於簡單的測試目的。
我把它放在一個Program
類中,它將一直獨自存在。 它通常只是啟動我的主窗口然后退出時窗口退出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.