• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Vermeiden von doppelten Code

Status
Für weitere Antworten geschlossen.

Bullz

Querina
Registriert
19.07.10
Beiträge
187
Hallo, Source Code sagt ja bekanntlich mehr wie 1000 Wörter.

Habe eine Variable bVar die entweder an dieser Stelle true / false sein kann.


Code:
Bool bVar = true | false
if (Bool == 1) {
if (bedingungen1 && bedingungen2)
//Anweisungsblock 10 Zeilen lang
} else {
if (bedingungen1) // ist die exakt gleiche wie die bedingungen1 von oben.
//Gleicher Anweisungsblock wie oben 10 Zeilen lang
}
So habe ich es implementiert und es funktioniert. Habe aber 2 mal den gleichen Code. Wie bekomme ich das schöner hin ohne den gleichen Code 2 mal verwenden zu müssen ?
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Ist jetzt noch früh am morgen:
if (bedingungen1 and bedingungen2) or bedingungen1

;)
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Ein heißer Tipp sind auch immer sogenannte Methoden :) . Vor allem bei 10 Zeilen.

bVar taucht im Code nicht mehr auf. Im Übrigen macht deine fehlende Einrückung und fehlende Klammerung (naja, das bekommt ja nicht mal Apple auf die Reihe, wie wir wissen) das ganze recht schwer lesbar.
 

Marcel Bresink

Breuhahn
Registriert
28.05.04
Beiträge
8.583
Ist der Code richtig wiedergegeben oder wurde "Bool" mit "bVar" vertauscht?

Der ganze komplizierte Ausdruck könnte dann durch
Code:
if (bVar && bedingungen1) {
   // Anweisungen
}
ersetzt werden. Der Ausdruck bedingungen2 hat überhaupt keine Bedeutung.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Schreiben wir den Code oben doch mal vernünftig lesbar auf:
Code:
BOOL bVar = YES | NO  <-  für iOS haben wir ja wohl Objective-C ;-)

if (bVar) {
    if (bedingungen1 && bedingungen2) {
        //Anweisungsblock 10 Zeilen lang
    }
}
else {
    if (bedingungen1) { // ist die exakt gleiche wie die bedingungen1 von oben.
        //Gleicher Anweisungsblock wie oben 10 Zeilen lang
    }
}

Dann dürfte das gleiche Ergebnis wie folgt zu erreichen sein:
Code:
if (bedingung1 && ((bVar && bedingung2) || !bVar) {
    // Anweisungsblock 10 Zeilen lang
}
 
Zuletzt bearbeitet:

iowl

Tokyo Rose
Registriert
19.02.10
Beiträge
67
Ich hätte das so gemacht:

Code:
- (void)deineMethode {

   

    Bool bVar = true | false

    if (Bool == 1) {

        if (bedingungen1 && bedingungen2)

            [self zehnZeilenLangerAnweisungsblock];

            } else {

                if (bedingungen1) // ist die exakt gleiche wie die bedingungen1 von oben.

                    [self zehnZeilenLangerAnweisungsblock];

                    }

}



- (void)zehnZeilenLangerAnweisungsblock {

   

    //Anweisungsblock 10 Zeilen lang

}
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.522
Ist es wirklich notwendig, mit so einer Frage gleichzeitig in zwei Foren zu starten und Leute zu beschäftigen? Das ist doch weder lebensbedrohlich dringend noch bekommst du im einem keine Antworten.
Ich würde mich als Helfer da veräppelt fühlen.
 
  • Like
Reaktionen: ImpCaligula

ImpCaligula

deaktivierter Benutzer
Registriert
05.04.10
Beiträge
13.859
Ist es wirklich notwendig, mit so einer Frage gleichzeitig in zwei Foren zu starten

Mod Info
Wieso zwei Foren? Mit unserem sind es hier zusammen 4 Foren. Und wer weiß wo noch?
http://www.hardwareluxx.de/community/f24/vermeidung-von-doppelten-code-1019273.html
http://www.macuser.de/forum/thema/701630-Vermeiden-von-doppelten-Code?p=8211963
http://osxentwicklerforum.de/index.php/Thread/27966-Vermeiden-von-doppelten-Code/

Und überall wird fleißig geantwortet und die Lösungen liegen schon lange vor. Das nenn ich nicht nur einfaches Crossposting, das ist dezent ausgedrückt eine "Sauerei". Die User machen dies auf Kosten ihrer eigenen Lebenszeit und ahnen nicht, dass mehrfach schon geantwortet wurde.

Hier ist dann auch Ende... und diesmal folgt auch eine PN an den TE. Denn so etwas ist schon dreist.
 
Status
Für weitere Antworten geschlossen.