Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-01-2009, 21:26   #1 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.697
imports mit * - vor und nachteile

hatten eben ein streitgespräch auf arbeit. es geht um "best practices" beim import von klassen.

Variante 1:
PHP-Code:
import com.domain.package1.*;
import com.domain.package2.*; 
Variante 2:
PHP-Code:
import com.domain.package1.class1;
import com.domain.package1.class2;
import com.domain.package2.class1;
import com.domain.package2.class2
in den Adobe Coding Conventions steht zum Beispiel folgendes:

Zitat:
Import specific classes, interfaces, and package-level functions rather than using the * wildcard.

Vorteile Variante1:
- weniger Schreibarbeit
- Klassenkopf kürzer und somit übersichtlicher.

Vorteile Variante2:
- man selbst und dritte sehen genau welche klassen benutzt werden


Kollege schwört auf variante 1, hauptsächlich weil er textmate als editor benutzt und somit nicht in den genuß der codeCompletion kommt.

ich plädiere selbst für variante 2, da man ja mit flashdevelop eh kein import selber schreiben muß.


habt ihr noch irgendwelche guten argumente, warum man variante 2 bevorzugen sollte?

gruß mad
__________________
www.madflanderz.de

www.graffiti-unlimited.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 14-01-2009, 21:29   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.935
Also die Wildcards haben den Nachteil, dass du Probleme bekommen kannst,
wenn du gleichnamige Klassen in verschiedenen Packages hast.

Da aber auch ich sicher keine Imports per Hand schreibe, gibt es auch keinen
Grund für die Wildcard Variante.

(Nur in ganz seltenen Fällen mache ich das, wenn ich garantiert alle Klassen
in dem Package in dieser Klasse nutzen werde.)

gruß
sebastian ist offline   Mit Zitat antworten
Alt 14-01-2009, 21:35   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.382
@Sebastian: da kommen keine Probleme auf, da der Compiler schon abwinkt.

Der einzige Unterschied ist wie schon erwähnt der Überblick...

Und ich habe auch schon lange keinen Import mehr von Hand geschrieben...
Omega Psi ist gerade online   Mit Zitat antworten
Alt 14-01-2009, 21:55   #4 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.697
schön, ich wollte nur etwas unterstützung .
aus seiner sicht kann ich es schon nachvollziehen (wegen der zusätzlichen tipparbeit), aber er is ja selber schuld wenn er keinen echten AS-Editor benutzen will .

bin halt auf der suche nach "tot-schlag-argumenten", um ihn einfacher zur einsicht zu bewegen.

naja, danke an eich beide und schönen abend
__________________
www.madflanderz.de

www.graffiti-unlimited.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 14-01-2009, 22:09   #5 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.935
Zitat:
Zitat von Omega Psi Beitrag anzeigen
@Sebastian: da kommen keine Probleme auf, da der Compiler schon abwinkt.
Klar, natürlich wird es einen Compiler Fehler geben. Aber soweit muss man es
ja nicht kommen lassen. Letztendlich spricht aber nichts für die Wildcards,
wenn man Auto Imports nutzt. Da ist der Üblick dann auch egal.

Zitat:
Zitat von madflanderz Beitrag anzeigen
schön, ich wollte nur etwas unterstützung .
aus seiner sicht kann ich es schon nachvollziehen (wegen der zusätzlichen tipparbeit), aber er is ja selber schuld wenn er keinen echten AS-Editor benutzen will .

bin halt auf der suche nach "tot-schlag-argumenten", um ihn einfacher zur einsicht zu bewegen.
Bei der Variante würde ich auch die Wildcards bevorzugen. Aber versuche
ihn wirklich erstmal für einen besseren Editor zu begeistern, dann erledigt
sich das andere Problem von selbst. Ansonsten ist ihm nicht zu helfen
sebastian ist offline   Mit Zitat antworten
Alt 20-01-2009, 16:58   #6 (permalink)
ich versuchs ja
 
Benutzerbild von netterkerl1981
 
Registriert seit: Sep 2007
Ort: Kassel
Beiträge: 281
Hätte in dem Zusammenhang mal ne Frage...
Wenn ich "*" benutze, werden doch alle classen in dem Paket importiert, oder?
Sucht sich der Compiler raus, welche ich wirklich benutzen will?
Oder werden alle Klassen mit hineingeschrieben, auch wenn ich diese nciht benutze?

In dem 2ten Fall wäre es doch besser, alle imports einzeln (von FlashDevelop) zu machen (machen zu lassen)...

mfg
Netterkerl1981
__________________
Zitat:
Eigentlich bin ich ganz anders. Ich komm nur viel zu selten dazu.
Udo Lindenberg und Jan Delay
netterkerl1981 ist offline   Mit Zitat antworten
Alt 20-01-2009, 17:38   #7 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.654
Zitat:
Zitat von netterkerl1981 Beitrag anzeigen
Sucht sich der Compiler raus, welche ich wirklich benutzen will?
Er sucht die aus, die tu tatsächlich benutzt.
Nicht unbedingt die, die du benutzen willst.
[/konfuzius]
__________________
we will stop enhancing the truth in 3, 2, ...
SpecOps-12 ist offline   Mit Zitat antworten
Alt 20-01-2009, 17:40   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.935
Klassen werden erst mitkompiliert, wenn sie verwendet werden.

Die Import Anweisung macht auch nichts als einen Verweis auf Klassen
zu erstellen, damit der Compiler weiß, woher er die Klasse nehmen soll.

Also Fazit: Durch ein Import alleine wird nichts kompiliert.
sebastian ist offline   Mit Zitat antworten
Alt 20-01-2009, 19:20   #9 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
Zitat:
Zitat von SpecOps-12 Beitrag anzeigen
Er sucht die aus, die tu tatsächlich benutzt.
Nicht unbedingt die, die du benutzen willst.
[/konfuzius]
Ich hab mir eine Klasse "Vector" geschrieben,... tja rate mal welche Klasse er seit FP10 meint das ich verwende ... :P
[RK] ist offline   Mit Zitat antworten
Alt 25-01-2009, 19:48   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.382
Zitat:
Zitat von [RK] Beitrag anzeigen
Ich hab mir eine Klasse "Vector" geschrieben,... tja rate mal welche Klasse er seit FP10 meint das ich verwende ... :P
Weshalb man ja auch einen eigenen Namensraum verwenden soll. Dann passiert so was nicht.
Omega Psi ist gerade online   Mit Zitat antworten
Alt 27-01-2009, 00:06   #11 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
Jetzt hab ichs nat. so gelöst, aber ich hab einfach nicht mitbekommen das es nun ein solches Objekt gibt und war anfangs ein wenig verwirrt Hab ja nicht gemeint das es ein sonderliches Problem ist, nur das der Compiler nicht gaaaaaaanz so intelligent ist, als das man ihn soetwas ersparen könnte (eigenen Namensraum zb)
[RK] ist offline   Mit Zitat antworten
Alt 13-02-2009, 10:29   #12 (permalink)
thinkin aBout tha lib.
 
Benutzerbild von kaneda
 
Registriert seit: Nov 2001
Ort: Kölle
Beiträge: 1.379
Oioioi

Also ich hatte gerade gestern das Thema: In einem Projekt das ein Freund übernehmen musste hat jemand nur com.mycompany.package.*; angegeben. Dazu kam noch das er das zum schnelleren Programmieren in ein Template reingetan hat, so das jede Datei alle Packages drin hatte.

Prinzipiell ist es meiner Ansicht nach keine gute Sache .* zu verwenden. es mag gut sein für menschen die keine Klassen schreiben.

Das Problem liegt in der Theorie darin: Man importiert zwei pfade:

import com.yourcompany.logger.*;
import com.mycompany.logExt.*;

und dann nenne ich meine Klasse TraceLogger weil sowas halt in dem anderen Package nicht drin steht.
Wenn jetzt der Typ von yourcompany.logger aber drauf kommt dort auch einen Logger reinzusetzen, dann wird automatisch die andere Klasse verwendet. Im Einzelfall irritiert sowas, manche länger, manche weniger lang.

Schön find ichs deswegen irgendwie überhaupt nicht. Btw.: Mit FDT gibts nette Shortcuts zum automatischen import.
__________________
Back to community with http://leichtgewicht.at
kaneda ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele