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
01.
/**
02.
* Ukazkova trida pro vzor Library class
03.
* Trida obsahuje metody pro elementarni matematiku
04.
* @author Pavel Micka
05.
*/
06.
public
final
class
MyMath {
07.
/**
08.
* Soukromy konstruktor - nepujde vytvaret instance
09.
*/
10.
private
MyMath() {
11.
}
12.
13.
public
static
int
gcd(
int
a,
int
b){
14.
if
(a <
1
|| b <
1
)
throw
new
IllegalArgumentException(
"a nebo b je mensi nez 1"
);
15.
while
(b !=
0
){
16.
int
tmp = a;
17.
a = b;
18.
b = tmp % b;
19.
}
20.
return
a;
21.
}
22.
/**
23.
* Resi kvadratickou rovnici o jedne nezname ve tvaru
24.
* ax^2 + bx + c = 0
25.
* @param a
26.
* @param b
27.
* @param c
28.
* @return pole realnych korenu, @null - pokud nema rovnice reseni v oboru
29.
* realnych cisel
30.
*/
31.
public
static
double
[] solveQuadraticEquation(
double
a,
double
b,
double
c){
32.
double
d = b*b -
4
*a*c;
//diskriminant
33.
System.out.println(d);
34.
if
(d <
0
){
35.
return
null
;
36.
}
else
if
(d ==
0
){
37.
double
[] result = {-b/
2
*a};
38.
return
result;
39.
}
else
{
40.
double
[] result = {(-b + Math.sqrt(d))/(
2
*a), (-b - Math.sqrt(d))/(
2
*a)};
41.
return
result;
42.
}
43.
}
44.
}