Java | dostęp do klas

Ćwiczenie.
Napisz klasę ConnectionManager, która będzie zarządzać tablicą obiektów Connection (tablica ma mieć stałą liczbę elementów). Programista-klient nie ma mieć możliwości jawnego tworzenia obiektów klasy Connection, polegając jedynie na statycznej metodzie z klasy ConnectionManager. Kiedy klasie ConnectionManager skończą się obiekty Connection, metoda ta powinna zwracać referencję pustą. Prztestuj działanie klas w metodzie main().

Rozwiązanie:

package net.traininguniverse.access;

class Connection {

    private Connection() {
    }

    public static Connection makeConnection() {
        return new Connection();
    }
}

public class ConnectionManager {

    static int count = 0;
    static final int size = 2;

    static Connection makeConnection() {
        count++;
        if (count <= size)
            return Connection.makeConnection();
        else
            return null;
    }

    public static void main(String[] args) {
        Connection[] connections = new Connection[size];

        connections[0] = makeConnection();
        connections[1] = makeConnection();
        System.out.println(connections[1]);
        System.out.println(makeConnection());
    }
}