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; } } }