Library class

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

Internet pro vaši firmu na míru