Re: Interpreter matematickych vyrazu

2005-11-21 Tema obsahu Tomas Hubalek
Muj puvodni dotaz byl, na neco rychleho. Groovy jsme zkousel (a 
interpreter jsem inicializoval jako private static final), ale je to 
brutalne pomale. Predkompilace neni mozna :-(


Mozna jeste zkusim ten beanshell.

Tom

Richard Malaschitz napsal(a):


Ja myslim, ze presne na tento druh problemov boli vymyslene
skriptovacie jazyky. BeanShell sa da naucit za 20 minut a JARko ma
143k. Groovy asi nebude vacsi. Rychlost tychto jazykov je celkom
dobra, ale zrejme ste pri kazdom zavolani inicializovali interpreter,
co je dost pomala operacia (aspon v BeanShelli). Pre dosiahnutie
maximalneho vykonu, sa pri starte aplikacie mozu vsetky scripty, ktore
sa budu pouzivat skompilovat do native java.


 





OT:Licence MySQL (bylo Java MySQL UTF8)

2005-11-21 Tema obsahu URBAN Leos

Petr Fejfar napsal(a):


MySQL neni pro komercni ucely zdarma, viz
http://www.mysql.com/company/legal/licensing/


A ja upresnuji:

Okolo licence MySQL je neuveritelny chaos, posilam nazor kolegy ktery se 
s tim zabyval:


Nekomercni licence MySQL je GPL.

Z hlediska bezneho pouziti v Jave (aplikace + JDBC) zalezi na vykladu 
dynamickeho linkovani. Vetsinovy nazor je, ze dynamicky link pres 
konfigurovatelny(!) datovy zdroj JDBC jiz boura GPL vazbu.


Pokud se k tomuto priklonite, pak plati nasledujici:

Mam-li aplikaci, ktera komunikuje pres JDBC a je mozne nastavit 
komunikaci pres jiny JDBC s jinou databazi (v konfiguraci), pak Vas
produkt nemusi byt pod GPL a to ani kdyz bude pouzivat u uzivatele ve 
finale MySQL JDBC a MySQL server. Podstatne je, ze uzivatel muze zdroj 
zvolit.


Pokud by tomu tak nebylo a pouziti dynamickeho linku by tu vazbu 
nebouralo, melo by to docela zajimave dusledky pro vsechny komercni 
produkty, pouzivajici konfigurovatelny JDBC (ODBC, ADO,...).


Viz.
http://www.ofb.biz/modules.php?name=Newsfile=articlesid=325

Kdysi jsem posilal takovyto priklad na autory MySQL a odpoved zadna...

Leos


Re: OT:Licence MySQL (bylo Java MySQL UTF8)

2005-11-21 Tema obsahu Burdik Petr

A to jeste neni nic proti tomu,
co chce Stalman v nove verzi. Blbecek. Ono se mu to strasne dobre keca z 
pozice cloveka, ktery si sedi na teplem miste na univerzite a diktuje 
studentum nove a nove verze emacsu. Pokud by nastala situace ze by 
clovek musel pri komercnim nasazeni platit za mysql, asi by si to kazdy 
rozmyslel. Bohuzel pod stejnou licenci je ted maxdb, drive sapdb :(


Pet


URBAN Leos napsal(a):


Petr Fejfar napsal(a):


MySQL neni pro komercni ucely zdarma, viz
http://www.mysql.com/company/legal/licensing/



A ja upresnuji:

Okolo licence MySQL je neuveritelny chaos, posilam nazor kolegy ktery 
se s tim zabyval:


Nekomercni licence MySQL je GPL.

Z hlediska bezneho pouziti v Jave (aplikace + JDBC) zalezi na vykladu 
dynamickeho linkovani. Vetsinovy nazor je, ze dynamicky link pres 
konfigurovatelny(!) datovy zdroj JDBC jiz boura GPL vazbu.


Pokud se k tomuto priklonite, pak plati nasledujici:

Mam-li aplikaci, ktera komunikuje pres JDBC a je mozne nastavit 
komunikaci pres jiny JDBC s jinou databazi (v konfiguraci), pak Vas
produkt nemusi byt pod GPL a to ani kdyz bude pouzivat u uzivatele ve 
finale MySQL JDBC a MySQL server. Podstatne je, ze uzivatel muze zdroj 
zvolit.


Pokud by tomu tak nebylo a pouziti dynamickeho linku by tu vazbu 
nebouralo, melo by to docela zajimave dusledky pro vsechny komercni 
produkty, pouzivajici konfigurovatelny JDBC (ODBC, ADO,...).


Viz.
http://www.ofb.biz/modules.php?name=Newsfile=articlesid=325

Kdysi jsem posilal takovyto priklad na autory MySQL a odpoved zadna...

Leos





Re: OT:Licence MySQL (bylo Java MySQL UTF8)

2005-11-21 Tema obsahu František Augusztin
Oto Buchta:
 A to , ze Linus Torvalds prohlasil, ze
 GPL se vztahuje pouze na vsechny kernely z Linuxu odvozene (a tedy ani na
 komercni moduly do Linuxu, viz drivery pro NVIDIA cipy, Adaptec RAIDy ci
 vmware), je ve sve podstate pravne irelevantni. Autor si tezko muze
 predefinovat vyklad obecne pouzivane licence :-( Coz mimo jine plati i pro
 JBoss...

Dobry den,

v tomto sa velmi mylite. Samozrejme ze si moze definovat dodatocne pravidla k 
vseobecnej licencii, ved ide o jeho program ! A kazdy kto prispieva k jeho 
programu predsa musi uznat jeho pravidla.

Licencie nie su len tak vo vzduchoprazdne, to, ze ci niekto porusuje GPL 
licenciu alebo nie v prvom rade posudzuje vzdy autor kodu a nie tvorca 
licencie.

Tvorca licencie moze maximalne tak poukazat, ze v tomto danom pripade podla 
jeho vykladu doslo k poruseniu licencie, ale postupovat proti narusitelovi 
licencie musi autor.

-- 
Frantisek Augusztin
[EMAIL PROTECTED]


Re: OT:Licence MySQL (bylo Java MySQL UTF8)

2005-11-21 Tema obsahu Rostislav Jez
Tato mailova adresa bude deaktivovana. Nejpozdeji od 1. ledna 2006
pouzivejte prosim nasledujici mailove adresy:

privatni [EMAIL PROTECTED]
pripadne [EMAIL PROTECTED]

This email address will be deactivated. Please use following email
addresses instead of this one latest since 1st Jan 2006:

private   [EMAIL PROTECTED]
alternatively [EMAIL PROTECTED]



Re: Interpreter matematickych vyrazu

2005-11-21 Tema obsahu Kamil Podlesak

Tomas Hubalek wrote:

Muj puvodni dotaz byl, na neco rychleho. Groovy jsme zkousel (a 
interpreter jsem inicializoval jako private static final), ale je to 
brutalne pomale. Predkompilace neni mozna :-(


Groovy se normalne kompiluje do .class, takze prekompilace je nejen 
mozna ale i nutna. Jina vec je, ze pokud je vyraz pokaždé novy, tak 
dochazi ke kompilaci a to prilis rychle neni.



--
Kamil podlesh Podlesak


Re: Java - kódování češtiny v názve ch souborů a adresářů

2005-11-21 Tema obsahu Kamil Podlesak

Ing. Radek Žuja wrote:


Dobrý den.
Mám následující problém.
Potřebuji otevřít v JAVA aplikaci soubor jehož cesta je uložena v 
databázi a je tam uložena v codepage 1250. Bohužel jsou v ní i háčky a 
čárky.

Na serveru, kde běží tako aplikace na default code page English.
Při zavolání kódu
File _f = new File(cesta);
mi to padne na FileNotFoundExecption.
Pokud na serveru nastavím defaultCodePage na czech pak jede vše bez 
problému. Nicméně takhle to nastavit nemůžu.


Proc ne?


Můžete mi někdo prosím poradit co s tím


Nastavit spravne locale (codepage) pro spoustenou aplikaci java.exe 
(tedy neco jako  LC_ALL=cs_CZ java classname, to funguje dobre). Jak 
to udelat pod Windows netusim, chtelo by to nejakeho Windows guru.



Radek Žuja





práce se souborem v kodovani ISO8859-2

2005-11-21 Tema obsahu Mošnička Roman
Title:  práce se souborem v kodovani ISO8859-2







Dobry den,

muzete mne někdo prosim poradit, jakym zpusobem mam rici programu v jave, ze vstupni soubor, ze ktereho ctu je v kodovani ISO8859-2?

Když nastavim System.setProperty(file.encoding,ISO-8859-2);

tak mi System.out.println(fileReader.getEncoding()); stále vraci cp1250. 

Predem dekuji a s pranim pekneho dne Roman Mosnicka





Re: Konstruktory

2005-11-21 Tema obsahu Jan Dvořák

Ja jsem si to pro sebe vyresil tak, ze validaci delam az po volani super().
A to jen u tech parametru, ktere vyuzivam jeste jinak, nez jen tim, ze 
je predam volani super() - u nich je zodpovednost za validaci na predkovi.
Pravda, je v tom skryta mirna neefektivita, ale nechci prece 
optimalizovat tridy na situace, kdy z jejich konstruktoru litaji 
vyjimky, ze...


Kdyz jsem se vyrovnal s tim, ze validaci budu delat az po volani 
super(), tak jsem uz nikdy nic jineho pred volanim super() v 
konstruktoru delat nepotreboval. Vsechny pripady, kdy to na to vypadalo, 
se po lepsim rozmysleni ukazaly jako suboptimalne navrzene.


Honza Dvorak


Goo GGooo napsal:


Ahoj vsichni,

uz jsem se pri svem seznamovani s Javou stacil dozvedet ze volani
konstruktoru nadrazene tridy (tedy super(...)) musi byt v novem
konstruktoru hned jako prvni prikaz. Netusite nekdo  jaky to ma duvod?
Ted jsem chtel vytvorit konstruktor ktery by pred zavolanim sveho
super()  vykonal validaci parametru, ale tvrde jsem narazil takze
musim pouzit nehezky workaround. Vrta mi hlavou jake tohle omezeni
muze mit duvod...?

Dik

Goo
 





RE: práce se souborem v kodovani ISO8859-2

2005-11-21 Tema obsahu Zeman Petr
Title: práce se souborem v kodovani ISO8859-2



A co treba zkusit:
File file = new File("cesta");
FileInputStream fis = new 
FileInputStream(file);
InputStreamReder isr = new InputStreamReader(fis, 
"ISO8859_2");

dle knihy P.Herouta Java graficke uzivatelske rozhrani a 
cestina.

Petr Zeman


From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On Behalf Of Mošnička 
RomanSent: Monday, November 21, 2005 1:02 PMTo: 
JavaSubject: práce se souborem v kodovani 
ISO8859-2


  Dobry den, muzete mne někdo prosim poradit, jakym zpusobem mam rici programu v 
  jave, ze vstupni soubor, ze ktereho ctu je v kodovani ISO8859-2?
  Když nastavim 
  System.setProperty("file.encoding","ISO-8859-2"); tak mi System.out.println(fileReader.getEncoding()); 
  stále vraci cp1250. Predem dekuji a s 
  pranim pekneho dne Roman Mosnicka 


RE: práce se souborem v kodovani ISO8859-2

2005-11-21 Tema obsahu Zeman Petr
Title: práce se souborem v kodovani ISO8859-2



Jeste doplnuji odkaz, kde naleznete spravne nazvy 
jednotlivych kodovani pro Javu.

Petr Zeman


From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On Behalf Of Zeman 
PetrSent: Monday, November 21, 2005 1:12 PMTo: 
JavaSubject: RE: práce se souborem v kodovani 
ISO8859-2

A co treba zkusit:
File file = new File("cesta");
FileInputStream fis = new 
FileInputStream(file);
InputStreamReder isr = new InputStreamReader(fis, 
"ISO8859_2");

dle knihy P.Herouta Java graficke uzivatelske rozhrani a 
cestina.

Petr Zeman


From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On Behalf Of Mošnička 
RomanSent: Monday, November 21, 2005 1:02 PMTo: 
JavaSubject: práce se souborem v kodovani 
ISO8859-2


  Dobry den, muzete mne někdo prosim poradit, jakym zpusobem mam rici programu v 
  jave, ze vstupni soubor, ze ktereho ctu je v kodovani ISO8859-2?
  Když nastavim 
  System.setProperty("file.encoding","ISO-8859-2"); tak mi System.out.println(fileReader.getEncoding()); 
  stále vraci cp1250. Predem dekuji a s 
  pranim pekneho dne Roman Mosnicka 


RE: práce se souborem v kodovani ISO8859-2

2005-11-21 Tema obsahu Rastislav Siekel
Title: práce se souborem v kodovani ISO8859-2



No, pre javu je to presnejšie na http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html

Rastislav "Bedo" Siekel

  
  
  From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED] On Behalf Of Zeman 
  PetrSent: 21. novembra 2005 13:17To: 
  JavaSubject: RE: práce se souborem v kodovani 
  ISO8859-2
  
  Omluva, ted je tam ten odkaz
  
  http://www.devsphere.com/mapping/docs/guide/encodings.html
  
  
  
  From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED] On Behalf Of Zeman 
  PetrSent: Monday, November 21, 2005 1:15 PMTo: 
  JavaSubject: RE: práce se souborem v kodovani 
  ISO8859-2
  
  Jeste doplnuji odkaz, kde naleznete spravne nazvy 
  jednotlivych kodovani pro Javu.
  
  Petr Zeman
  
  
  From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED] On Behalf Of Zeman 
  PetrSent: Monday, November 21, 2005 1:12 PMTo: 
  JavaSubject: RE: práce se souborem v kodovani 
  ISO8859-2
  
  A co treba zkusit:
  File file = new File("cesta");
  FileInputStream fis = new 
  FileInputStream(file);
  InputStreamReder isr = new InputStreamReader(fis, 
  "ISO8859_2");
  
  dle knihy P.Herouta Java graficke uzivatelske rozhrani a 
  cestina.
  
  Petr Zeman
  
  
  From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED] On Behalf Of Mošnička 
  RomanSent: Monday, November 21, 2005 1:02 PMTo: 
  JavaSubject: práce se souborem v kodovani 
  ISO8859-2
  
  
Dobry den, muzete mne někdo prosim poradit, jakym zpusobem mam rici programu v 
jave, ze vstupni soubor, ze ktereho ctu je v kodovani ISO8859-2?
Když nastavim 
System.setProperty("file.encoding","ISO-8859-2"); tak mi System.out.println(fileReader.getEncoding()); 
stále vraci cp1250. Predem dekuji a 
s pranim pekneho dne Roman Mosnicka 


RE: Java - kódování češtiny v ná zvech souborů a adresářů

2005-11-21 Tema obsahu Rastislav Siekel
A nestačilo by:

java.exe -Dfile.encoding=windows-1250 aplikacia

kedysi som používal tieto properties, aby mi išla aplikácia bez ohľadu na OS 
locale:
- file.encoding=windows-1250
- user.country=SK
- user.language=sk

Rastislav Bedo Siekel


 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Kamil Podlesak
 Sent: 21. novembra 2005 12:38
 To: Java
 Subject: Re: Java - kódování češtiny v názvech souborů a adresářů
 
 Ing. Radek Žuja wrote:
 
  Dobrý den.
  Mám následující problém.
  Potřebuji otevřít v JAVA aplikaci soubor jehož cesta je uložena v 
  databázi a je tam uložena v codepage 1250. Bohužel jsou v 
 ní i háčky a 
  čárky.
  Na serveru, kde běží tako aplikace na default code page English.
  Při zavolání kódu
  File _f = new File(cesta);
  mi to padne na FileNotFoundExecption.
  Pokud na serveru nastavím defaultCodePage na czech pak jede vše bez 
  problému. Nicméně takhle to nastavit nemůžu.
 
 Proc ne?
 
  Můžete mi někdo prosím poradit co s tím
 
 Nastavit spravne locale (codepage) pro spoustenou aplikaci 
 java.exe (tedy neco jako  LC_ALL=cs_CZ java classname, to 
 funguje dobre). Jak to udelat pod Windows netusim, chtelo by 
 to nejakeho Windows guru.
 
  Radek Žuja
 
 
 




RE: práce se souborem v kodovani ISO8859-2

2005-11-21 Tema obsahu Mošnička Roman
Title: práce se souborem v kodovani ISO8859-2



dekuji vsem za rady a jeste jednou pekny 
den
rm



Re: Java - kódování češtiny v názve ch souborů a adresářů

2005-11-21 Tema obsahu Kamil Podlesak

Rastislav Siekel wrote:


A nestačilo by:
java.exe -Dfile.encoding=windows-1250 aplikacia

kedysi som používal tieto properties, aby mi išla aplikácia bez ohľadu na OS 
locale:
- file.encoding=windows-1250
- user.country=SK
- user.language=sk
 


Ano, pokud to bude fungovat.
Já jsem to v minulosti několikrát zkoušel a nefungovalo to (linux JDK), 
evidentně se nejdřív nastaví interní kódování a podle něj pak property, 
nikoliv naopak :-( Může se to však lišit podle verze a platformy JDK.


--
Kamil podlesh Podlešák


Re: OT:Licence MySQL (bylo Java MySQL UTF8)

2005-11-21 Tema obsahu Oto Buchta
On Monday 21 of November 2005 10:56, František Augusztin wrote:
 Oto Buchta:
  A to , ze Linus Torvalds prohlasil, ze
  GPL se vztahuje pouze na vsechny kernely z Linuxu odvozene (a tedy ani na
  komercni moduly do Linuxu, viz drivery pro NVIDIA cipy, Adaptec RAIDy ci
  vmware), je ve sve podstate pravne irelevantni. Autor si tezko muze
  predefinovat vyklad obecne pouzivane licence :-( Coz mimo jine plati i
  pro JBoss...

 Dobry den,

 v tomto sa velmi mylite. Samozrejme ze si moze definovat dodatocne pravidla
 k vseobecnej licencii, ved ide o jeho program ! A kazdy kto prispieva k
 jeho programu predsa musi uznat jeho pravidla.

 Licencie nie su len tak vo vzduchoprazdne, to, ze ci niekto porusuje GPL
 licenciu alebo nie v prvom rade posudzuje vzdy autor kodu a nie tvorca
 licencie.

 Tvorca licencie moze maximalne tak poukazat, ze v tomto danom pripade podla
 jeho vykladu doslo k poruseniu licencie, ale postupovat proti narusitelovi
 licencie musi autor.

Zasadni spor je v tom, zda tvrzeni prispevatelem lklm konference podepsane 
jako Linus Torvalds ma stejnou pravni vahu jako tvrzeni uvedene v soubrou 
LICENCE prilozenem v distribuovanem baliku. Navic tento vyklad je o nejakych 
osm let mladsi nez text teto licence. Je to tedy totez, jako kdyz podepisete 
papir na zavazny odber zbozi pod pokutou milion korun pri odstoupeni, ale 
jedine, co se dopredu dozvite, je, ze cena bude akcni. No a pak vam nekdo za 
deset obyc rohliku nauctuje misto 10Kc 100Kc s oduvodnenim, ze sice je 
napsano na fakture 10 rohliku, celkem cena 10Kc, ale ze podle noveho vykladu 
pana Sefa to celkem znamena prumerna cena za kus ;-) 

Problem, ze pri vzniku GPL nebyl schopny pravnik, poneseme jeste par desitek 
let jako tezke bremeno. Ona ani GPL 2 neni uplne v poradku a stejne tak EPL 
(European Public Licence nebo jak se to jmenuje), nebot zase pocita jenom s 
binarkama :-( Jak se zda, tak jak nterpretovany kod, tak na prilozene 
obrazky, proste autori obecne pouzitelnych licenci kaslou.

Navic Linus Torvalds ma autorska prava pouze na TM Linux a na kod, ktery sam 
vytvoril. Aby zmenil licenci, museli by souhlasit vsichni autori kodu 
aktualne dostupneho v kernelu, coz je vzhledem k tomu, ze nekolik je jich jiz 
po smrti, velky orisek (reseni pravnich vztahu dedicu autorskych prav na 
copyleft se tusim jeste nikde na svete neresilo ;-) )
-- 
Oto 'tapik' Buchta, [EMAIL PROTECTED]
Senior Engineer, Systinet Corp,
http://www.systinet.com


Re: OT:Licence MySQL (bylo Java MySQL UTF8)

2005-11-21 Tema obsahu František Augusztin
Oto Buchta:
 Zasadni spor je v tom, zda tvrzeni prispevatelem lklm konference podepsane
 jako Linus Torvalds ma stejnou pravni vahu jako tvrzeni uvedene v soubrou
 LICENCE prilozenem v distribuovanem baliku. 

Uvod suboru COPYING z kernelu :


   NOTE! This copyright does *not* cover user programs that use kernel
 services by normal system calls - this is merely considered normal use
 of the kernel, and does *not* fall under the heading of derived work.
 Also note that the GPL below is copyrighted by the Free Software
 Foundation, but the instance of code that it refers to (the Linux
 kernel) is copyrighted by me and others who actually wrote it.

 Also note that the only valid version of the GPL as far as the kernel
 is concerned is _this_ particular version of the license (ie v2, not
 v2.2 or v3.x or whatever), unless explicitly otherwise stated.

Linus Torvalds



GNU GENERAL PUBLIC LICENSE
   Version 2, June 1991

-- 
Frantisek Augusztin
[EMAIL PROTECTED]


RE: Konstruktory

2005-11-21 Tema obsahu Vit Novak
Dobry den,

hledejte spise Factory Method pattern :)

VN

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Radovana Straube
Sent: Tuesday, November 22, 2005 12:08 AM
To: Java
Subject: Re: Konstruktory

Zdravim,

to co hladate je Factory pattern. Priklady a popis
najdete napr. na tychto strankach:
- http://home.earthlink.net/~huston2/dp/patterns.html
- http://www.javacamp.org/designPattern/

Radovana Straube



Jeste patterny [WAS: Konstruktory]

2005-11-21 Tema obsahu Vit Novak
Jeste k tem patternum,

Patterny nejsou striktne vazany na javu, jedna se spis
o jakesi standardni konstrukce pouzivane v objektove
orientovanem programovani, stejne dobre pujdou pouzit
i v C++, C# nebo Pythonu. Je to prostredek jak snaze
napsat dobry kod (casto podobne problemy uz nekdo
vyresil lepe, nez kdy budu schopen ja) i k usnadneni
komunikace (je snazsi a pochopitelnejsi rict kolegovi 
udelej z toho singleton nez tuhle tridu napis tak, 
aby existovala jedina instance a jeji vytvorei bylo v 
rezii tridy same. Pro studium patternu bych Vam doporucil 
zejmena knihu Head First Design Patterns, o niz se 
tu nedavno diskutovalo, ale je jich vic, napriklad 
predmailnikem zminene internetove odkazy. 

Co se tovarni metody tyce, je to aternativa k verejnemu 
konstruktoru, ktera je nekdy (ne vzdy) vhodnejsi. Jeji 
vyhodou je zejmena lepsi kontrola nad vytvarenim objektu.

Jedna se o to, ze trida poskytne public static metodu, ktera vraci
tuto tridu (nebo ji implementovany interface) a skryje (protected
nebo private) konstruktor. Tedy misto

class MyClass() {
  public MyClass() {
   ...
  }
}

udelam 

class MyClass() {
  private MyClass() {
   ...
  }
  public static MyClass getInstance() {
MyClass myClass = new MyClass();
...
return myClass;
  }
}

Jake to ma vyhody?

- nemusim vzdy vracet novy objekt: u tridy Boolean nestojim o to,
abych mel 1000 ruznych instanci hodnoty TRUE, takze neposkytnu
konstruktor public Boolean(String str), ale poskytnu tovarni metodu
public Boolean getValue(String str) a vratim jednu z jiz hotovych
hodnot Boolean.TRUE nebo Boolean.FALSE

- mohu si provest pre-inicializaci, jak se mi zlibi; v ramci tovarni 
metody mohu novy objekt vytvorit az tehdy, kdy se mi to hodi:

class MyClass {
  // skryty konstruktor
  private MyClass(Param p) {
 ... 
  }
  // verejna tovarni metoda
  public static MyClass getInstance(Param p) {
preinicializace(p);
MyClass retVal = new MyClass(p);
postinicializace(p);
return retVal;
  }
  ...
}

- konstruktor se dle syntaxe jmenuje stejne jako trida a tudiz 
jeho jmeno nemuze nest informaci o jeho funkci, coz nekdy muze 
byt na skodu; tovarni metoda muze informovat uz svym jmenem 
o sve funkci: napr. BigInteger nabizi konstruktory
BigInteger(int bitLength, int certainty, Random rnd)
a BigInteger(int numBits, Random rnd) ktere vytvori BigInteger,
ktery je pravdepodobne prvocislo, prip. nahodne cislo.
Tovarni metody createProbablePrime a createRandom by byly 
vhodnejsi - v kodu by bylo jasnejsi, co delaji; srovnejte:

...
BigInteger pPrime = new BigInteger(55, 10, new Random());
...

a 

...
BigInteger pPrime = BigInteger.createProbablePrime(55, 10, new Random());   
...

- tovarni metoda muze vratit i instanci podtridy, 
pokud pro to je duvod; konstruktor vzdy vraci jen 
instanci te tridy, ve ktere je napsan:

class URL {
  public URL(String str) {
...
  }
}
vzdy vrati jen objekt typu URL.

class URL {
  public static URL getURL(String str) {
if (zacina(str, file:)) {
   return new FileURL(str);
} else if (zacina(str, http:)) {
   return new WebURL(str);
} ...
  }
}
muze vratit instanci ruznych podtrid tridy URL.


Samozrejme to muze mit i nevyhody, napriklad se 
tim komplikuje az znemoznuje dedicnost. Kazdopadne
jeste jednou doporucim knihu J.Blocha Java Efektivne,
viz tez http://www.linuxzone.cz/index.phtml?ids=33idc=475
kde zrovna factory method je take rozebirana.

Dobrou noc

VN

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Goo GGooo
Sent: Monday, November 21, 2005 11:51 PM
To: Java
Subject: Re: Konstruktory

Diky vsem za vysvetleni!

Ted si jenom nekde nastudovat co je to tovarni metoda ;-) Jak se
tomu rika anglicky? Mam k ruce jen knizku Java in a nutshell, kde
jsem zadnou zminku o factory method nenasel.

Goo