Statik bir ana yöntemi olan Java sınıfları için adlandırma kuralları?


21

Okuduktan sonra Gnat yanıtını için neden Java ve C # statik ana yöntem yerine yapıcı? Cevabını, Java sınıfının statik bir ana yöntemle amacının amaç define a program entry pointolduğu ve programın kendisi olmadığı anlamına geliyor.

Bunu yapmanın daha iyi bir yolu olabilir, ancak genellikle böyle basit bir şey yapmak için statik ana yöntemle sınıfım var:

public class MenuLauncher
{
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.run();
    }
}

Yukarıdaki kod, statik ana sınıfının, statik olmayan ayrı bir nesne içinde yer alan program mantığını başlatmak veya başlatmaktan daha fazlasını yapmadığı OOP için en iyi uygulama mıdır; all-all main statik olduğundan MenuLauncher sınıfının kendisi çok sınırlı olmaz mıydı? Asıl başlangıç ​​noktası olduğu için, sınıf için giriş noktası olmaktan başka bir amaç göremiyorum.

Ana yöntem içeren ve programın giriş noktası olma amacına hizmet eden sınıflar için yaygın olarak kullanılan bir Java adlandırma kuralı var mı?


1
Genelde benimkini ararım Program.
Robert Harvey,

1
Ben onu ararım Mainve genellikle 20 satırdan daha kısa sürer (istisna yakalama ve parametre ayrıştırma ile).
assylias

yazdığım son 5 Test1, Test2, Test3, Test4 ve Test5 idi :) Bazı küçük testler yazıyordu ve zaman zaman açıklayıcı kod olduğu gibi tanımlayıcı isimleri düşünerek zaman harcamak istemiyordu.
jwenting

Yanıtlar:


18

Hayır, bunun için yaygın olarak kullanılan adlandırma kuralları yoktur. Gördüğüm örnekler Main, Application, XLauncherveya XX'in proje / uygulamanın adıdır.

Ve evet, bence bu sınıfın sadece uygulamayı kurmak ve başlatmak için gereken minimum mantığı / kodu içermesi iyi. Ama eminim ki çok bin satırlık bir canavarlığın üzerine sürülen bir yöntemle çok sayıda Tanrı Nesnesi ve Büyük Çamur Topu var main.


Bunun birkaç yıl sonra olduğunu biliyorum ama son cümlenin beni sandalyemden düşürdü. Gülüşün için teşekkürler.
user0000001,

@ user0000001: Rica ederim!
Michael Borgwardt

9

Ana Sınıf olarak adlandırılırlar, Ana olarak adlandırılıp adlandırılmadıkları ve az ya da çok yapıp yapamayacakları denir.

Genellikle programı başlatmak için gerekli mantığı vardır.

CLI uygulamalarında genellikle parametreleri doğrularlar.

Masaüstü uygulamasında sizinki gibi ana menüyü açarlar veya ana pencereyi açarlar.

MANIFEST dosyalarını bir jar dosyasında okursanız, buna denirdi.

Manifest-Version: 1.0
Created-By: xxx
Built-By: xxx
Build-Jdk: 1.6.0_04
Main-Class: myPackage.MenuLauncher
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.