Static Class vs. Private Constructor – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Static Class vs. Private Constructor – .NET – Fórum – Programujte.comStatic Class vs. Private Constructor – .NET – Fórum – Programujte.com

 

Temp
~ Anonymní uživatel
8 příspěvků
29. 5. 2013   #1
-
0
-

Prosím o vysvětlení rozdílu ve výsledku při použití statické třídy a privátního konstruktoru.

V obou případech není možné použití třídy jako bázové a instancování třídy.

Jaký je v tom tedy rozdíl?

Děkuji.

Nahlásit jako SPAM
IP: 89.31.10.–
RomanZ
~ Anonymní uživatel
272 příspěvků
29. 5. 2013   #2
-
0
-

Instancování třídy (která má privátní konstruktor) podle mne možné je, viz GOF návrhový vzor Singleton. Určitá implementace vzoru Singleton je založena právě na využití privátního konstruktoru.

Nahlásit jako SPAM
IP: 90.176.60.–
ingiraxo+15
Grafoman
29. 5. 2013   #3
-
0
-

u statický třídy nejde vytvořit instance a nejde ofc dědit (konstruktor se uvádí jako static)

u třídy která ma privátní konstruktor lze vše, jen nelze zavolat ten privátní konstruktor

zde je důležité to klíčové slovo static

Nahlásit jako SPAM
IP: 93.90.162.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Temp
~ Anonymní uživatel
8 příspěvků
30. 5. 2013   #4
-
0
-

Bylo by možné uvést příklad dědění a instancování třídy s privátním konstruktorem?

Nahlásit jako SPAM
IP: 89.31.10.–
KIIV
~ Moderátor
+43
God of flame
30. 5. 2013   #5
-
0
-

Dedeni sem neresil, ale privatni konstruktor sem pouzil v kombinaci se statickou metodou na ziskani instance objektu a statickeho "vytvoreni" vsech instanci z konfigurace. Vyhoda? Pracuji pak vzdy se stejnou instanci objektu kdekoliv. (+ pokud je vetsi objekt, tak to setri misto - coz se v jave obvykle moc neresi)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ingiraxo+15
Grafoman
30. 5. 2013   #6
-
0
-

   

class A
{
    protected int cislo;

    private A() { } // zakáže bezparametrický konstruktor
    public A(int cislo) { this.cislo = cislo; }
}

// třída B nyní může používat pouze konstruktor s parametrem int
// případně nějaký vlastní, ale nelze vytvořit bezparametrický!
class B : A
{
    // zavolá konstruktor z rodiče
    public B(int cislo)
        : base(cislo) { }
}
Nahlásit jako SPAM
IP: 93.90.162.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý