V tomto príklade sa naučíme implementovať súkromné konštruktory v Jave.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:
- Konštruktory Java
- Java Singleton
Príklad 1: Program Java na vytvorenie súkromného konštruktora
class Test ( // create private constructor private Test () ( System.out.println("This is a private constructor."); ) // create a public static method public static void instanceMethod() ( // create an instance of Test class Test obj = new Test(); ) ) class Main ( public static void main(String() args) ( // call the instanceMethod() Test.instanceMethod(); ) )
Výkon
Toto je súkromný konštruktér.
Vo vyššie uvedenom príklade sme vytvorili súkromný konštruktor Test
triedy. Preto nemôžeme vytvoriť objekt Test
triedy mimo triedy.
Preto sme vytvorili public static
metódu nazvanú instanceMethod()
vnútri triedy, ktorá sa používa na vytvorenie objektu triedy Test. A z Main
triedy voláme metódu pomocou názvu triedy.
Príklad 2: Návrh Java Singleton pomocou súkromného konštruktora
Dizajnový vzor Java Singleton zaisťuje, že by mala existovať iba jedna inštancia triedy. Aby sme to dosiahli, používame súkromného konštruktora.
class Language ( // create a public static variable of class type private static Language language; // private constructor private Language() ( System.out.println("Inside Private Constructor"); ) // public static method public static Language getInstance() ( // create object if it's not already created if(language == null) ( language = new Language(); ) // returns the singleton object return language; ) public void display() ( System.out.println("Singleton Pattern is achieved"); ) ) class Main ( public static void main(String() args) ( Language db1; // call the getInstance method db1= Language.getInstance(); db1.display(); ) )
Výkon
Je dosiahnutý Singleton vzor Inside Private Constructor
Vo vyššie uvedenom príklade sme vytvorili triedu s názvom Jazyky. Trieda obsahuje,
private
premenná typu jazyk - trieda- Jazyk () -
private
konštruktor - getInstance () -
public static
metóda typu triedy - Zobrazenie () -
public
metóda
Pretože konštruktor je private
, nemôžeme vytvárať objekty jazyka z vonkajšej triedy. Preto sme vo vnútri getInstance()
metódy vytvorili objekt triedy .
Podmienku sme však nastavili tak, aby vznikol iba jeden objekt. A metóda vráti objekt.
Všimnite si riadok,
db1 = Language.getInstance();
Tu,
- db1 je premenná typu jazyka
- Language.getInstance () - zavolá metódu
getInstance()
Pretože getInstance()
vracia objekt jazykovej triedy, premenná db1 je priradená k vrátenému objektu.
Nakoniec sme display()
metódu zavolali pomocou objektu.