|
From: Erik M. <mo...@sc...> - 2002-06-21 08:21:12
|
Am Fre, 2002-06-21 um 01.21 schrieb Steffen Sauder: > Die unteren Schichten sollten die dar=FCber nicht kennen=20 > (->3-Schichten-Modell). Wenn sie > es doch tun m=FCssen, dann aber bitte heimlich und nicht noch in den=20 > Kommentaren mit > den Fingern draufzeigen ;). Besser w=E4re auch hier wenn sich die=20 > LgSchicht die Werte aus > der DbSchicht mit gettern holt, und wenn n=F6tig mit Observer Pattern daz= u=20 > aufgerufen wird. Die Db-Schicht muss zwar auf das Lg-Objekt zugreifen, aber sie braucht eigentlich die setter zum Zuweisen der Listen nicht, wenn die Lg-Schicht leere Standardlisten verwendet. Ich meine, es ist aber wenig logisch, elementare Datenhaltungsobjekte wie Maps und Listen unbedingt in die Db-Schicht zu stecken. Dann m=FCsste auch das FileSystem eine Db-Schicht haben nur f=FCr den Fall, dass man es u.U. mal serialisieren wollte ..=20 Der urpsr=FCngliche Aufruf, der dazu f=FChrt, dass die Db-Schicht die Lg-Schicht bedient, geht aber von der Lg-Schicht an die Db-Schicht (open). > 2. Die typsicheren Maps und Listen sind zwar eine feine Sache, aber=20 > irgendwie sch=F6ner > w=E4re es doch, die Implementierung als Listen und Maps nicht nach au=DFe= n=20 > preiszugeben, > sondern stattdessen nur Methoden zum logischen Zugriff ohne Hinweis auf d= ie > verwendete Implementierung bereitzustellen >=20 > z.B. > void setIntegerOption(String i_name, int i_value); > int getIntegerOption(String i_name); >=20 > boolean doesFileNameHaveTextFileExtension(String i_fileName); > void addTextFileExtension(String i_extension); > void removeTextFileExtension(String i_extension); >=20 > String getMappedDirectoryName(LgSystemID i_theSystemOfThePathName,=20 > String i_thePathName, LgSystemID i_theCurrentlyRunningSystem); > void addNewMapping(LgSystemID i_firstSystem, String=20 > i_pathNameOnFirstSystem, LgSystemID i_secondSystem, String=20 > i_pathNameOnSecondSystem); Hm, komplett verpacken werde ich die Listen wohl nicht, da man dann wieder viele Methoden verbergen m=FCsste (keys(), values() usw.). Gerade das mit dem Null-Pointer kann man ja auch in der Liste als Exc realisieren. Da wo es Sinn macht, kann man aber noch abgepr=FCfte Methoden hinzuf=FCgen. Der Nutzer kann dan halt immer auch die unsicheren verwenden. MfG EM=D6 --=20 Scientific Reviewer, Freelancer, Humanist -- Berlin / Germany Phone: +49 (0)30 45491008 -- Web: http://www.humanist.de/erik Editor of: http://www.violence.de, http://www.infoanarchy.org Patriotism is an ephemeral motive that scarcely ever outlasts the particular threat to society that aroused it. -- Denis Diderot |