Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Gruppe sort Morten, Peter, Jesper, Spencer & Støving.

Lignende præsentationer


Præsentationer af emnet: "Gruppe sort Morten, Peter, Jesper, Spencer & Støving."— Præsentationens transcript:

1 Gruppe sort Morten, Peter, Jesper, Spencer & Støving

2 Item 40 Design method signatures carefully

3 Design method signatures carefully! (1/3)  Metoder skal gøre én ting  Undgå f.eks. getNamesOfPeopleAndDropRowsWithTheNamesInIT(…)  Undgå mange parametre  Undgå f.eks. getNamesWhere(name, grade, age, skillLevel, class, gender,…);  Brug enums i stedet for booleans som input  Thermometer.newInstance(TemperatureScale.CELSIUS) i stedet for Thermometer.newInstance(true)

4 Design method signatures carefully! (2/3)  Alle metoder skal være brugbare i flere tilfælde  Undgå f.eks. getPeopleBornIn1990(…);  Brug f.eks.: getName, getLength, getSublist(indexA, indexB);  Ved parametre, brug interfaces i stedet for klasser  Undgå f.eks. setListOfPeople(arraylistOfNames,…);  Brug: setListOfPeople(abstractlistOfNames);  Går an på hvad du har brug for af egenskaber

5 Design method signatures carefully! (3/3)  Hvad gør denne kode?

6 Item 60 Favor the use of standard exceptions

7 Favor the use of standard exceptions (1/3)  Stort udvalg af eksisterende exceptions  Mindre hukommelsesbrug & tid at loade klasserne  Nemmere at genbruge kode  Nemmere for andre at forstå

8 Favor the use of standard exceptions (2/3)  IllegalArgumentExeption  IllegalStateException  NullPointerException  IndexOutOfBondsException  Eksempel:

9 Favor the use of standard exceptions (3/3)  Lav gerne specifikke subklasser af eksisterende exceptions  Brug de eksisterende unchecked exceptions hvor det er relevant

10 Item 30 Use enums instead of int constants

11 Enums, the wrong way (1/5)  public static final int APPLE_FUJI = 0;  public static final int APPLE_PIPPIN = 1;  public static final int ORANGE_NAVEL = 0;  public static final int ORANGE_TEMPLE = 1;

12 Enums, the general way (2/5)  Fungerer i princip som egentlige klasser.  Eksporterer en enkel instans for hver enumeringskonstant.  Som altid bedst med public accessor metoder

13 Interessante metoder (3/5)  Generelt kald  toString()  values()  valueOf(String)

14 Constant-specific method implementation (4/5)  Nogle gange ønsker man ikke fælles implementation for enums  Derfor kan der erklæres metoder for hver konstant

15 Private nested enums (5/5)  ”Tvinger” enclosing class til at vælge en implementation

16 Item 10, 20 & 50

17 Item 10: Always override toString()  Alle klasser arver toString() fra Object  Returnerer som standard navnet på klassen og objektets hukommelsesadresse  Fortæller intet om klassens indhold Print objektes værdier som klassen Person der printet navn & telefonnummer

18 Item 20: Prefer class hierarchies to tagged classes Shape Kender sin egen state, om det er en cirkel, trekant eller cirkel Giver meget ulæsbar kode og kan nemt give problemer ved udvidelse Hver klasse arver fra Shape

19 Item 50: Avoid strings where other types are more appropriate  Strings er for det meste meget langsomme at arbejde med  String id = ”#10203”, hvis man skal bruge nummeret flere gange, skal man parse id hver gang  F.eks. int idNumber = id.parse(…); kun én gang

20 Shows over! You can go outside and play now!


Download ppt "Gruppe sort Morten, Peter, Jesper, Spencer & Støving."

Lignende præsentationer


Annoncer fra Google