From: Kouba T. <to...@ne...> - 2003-05-06 14:10:37
|
Zdravim a preji pekny den, tak jsem nad tim zase hodne premyslel a dospel k nazoru, ze mate pravdu. Urcite tento zpusob pouziji pro Logger a requesty. Priznavam, ze trochu plavu v tom, jak zaridit bezproblemovy chod v pripade vicevlaknoveho pristupu, ale az se k tomu dostanu, tak to snad vyresim. Jako druhy globalni prvek mam konfiguracni promene. Jde o ruzne typy a druhy promennych, ktere se casto v programu pouzivaji a meni. Behem chodu programu jsou ulozeny v HashMap a pri startu jsou nacitana z XML souboru pomoci SAX parseru. Jejich struktura je jednoducha. Myslim, ze ty by mely byt dostupne pomoci statickych metod. Mejte se fajn... -- Kouba Tomas mailto:to...@ne... > > Kouba Tomas wrote: > > Mohl bych poprosit o strucny priklad. Dekuji... > > > > Uvedu tedy priklad: > > public class Context { > > private static final String NO_REQUEST="zadny request nebyl > nastaven"; > > //v kazdem threadu je jina hodnota > private static ThreadLocal requests = new ThreadLocal() { > protected Object initialValue() { > return NO_REQUEST; > } > }; > > public static Logger getLog() { > Logger.getInstance(); > } > > public static HttpRequest getRequest() { > if (requests.get().equals(NO_REQUEST) > throw new RuntimeException(NO_REQUEST); > (Request) requests.get(); > } > > //seter pro request > static void setRequest(HttpRequest request) { > requests.put(request); > } > > public static User getUserId() { > getRequest().getSession().get("user",new EmptyUser()); > } > } > > No a pouziti je trivialni - > > Logger log = Context.getLog(); > Request request = Context.getRequest(); > ... > Proste vsechno pouziva klasicky Bean pattern, tedy getX a setX metody, > pricmez setX metody jsou chraneny, a to jak ruznymi testy, tak nativnimi > bezpecnostnimi pravidly. > > Je to o tom, ze vsechno je zabaleno do jednoho objektu. > Je samozrejme mozne, tak jako jsme to delali my v Dialogusu, > predavat onen kontext ve volani metod, ale po dukladnych analyzach > delanych loni lidmi z IBM byl navrzen prave tento staticky pristup. > > > -- > Oto 'tapik' Buchta, ta...@sy... > R&D team, Systinet Corp. (formerly Idoox) > http://www.systinet.com > > |