Library class je jednoduchým návrhovým vzorem, jehož cílem je vytvoření obálky na statické metody podobného účelu. Příkladem mohou být knihovní třídy jazyků zabývající se elementární matematikou, například třída java.lang.Math v Javě. Protože jsou všechny metody statické, tak nemá smysl umožňovat ani dědění, ani tvorbu instancí, proto je třída finální a má soukromý konstruktor.


Kód

/**
 * Ukazkova trida pro vzor Library class
 * Trida obsahuje metody pro elementarni matematiku 
 * @author Pavel Micka
 */
public final class MyMath {
    /**
     * Soukromy konstruktor - nepujde vytvaret instance
     */
    private MyMath() {
    }
    
    public static int gcd(int a, int b){
	if(a < 1 || b < 1) throw new IllegalArgumentException("a nebo b je mensi nez 1");
	while(b != 0){
	    int tmp = a;
	    a = b;
	    b = tmp % b;
	}
	return a;
    }
    /**
     * Resi kvadratickou rovnici o jedne nezname ve tvaru
     * ax^2 + bx + c = 0
     * @param a
     * @param b
     * @param c
     * @return pole realnych korenu, @null - pokud nema rovnice reseni v oboru
     * realnych cisel
     */
    public static double[] solveQuadraticEquation(double a, double b, double c){
        double d = b*b - 4*a*c; //diskriminant
        System.out.println(d);
        if(d < 0){
            return null;
        }else if (d == 0){
            double[] result = {-b/2*a};
            return result;
        }else{
            double[] result = {(-b + Math.sqrt(d))/(2*a), (-b - Math.sqrt(d))/(2*a)};
            return result;
        }
    }
}








Doporučujeme