What1slove / RefactoringLab

Вторая лабораторная по рефакторингу
0 stars 0 forks source link

Одержимость элементарными типами (Ex) #11

Open What1slove opened 4 years ago

What1slove commented 4 years ago

Метод getDeathCoords опять формирование координат фручную и использование массивов int Почему плохо: 1 Очень тяжело читается и понимается 2 Можем забыть какая ячейка массива каким данным соответствует Код: public List<int[]> getDeathCoords(Level lev){ // return death explosion image coords int[][] coords = new int[15][3]; Column c = lev.getColumns().get(col); int[] p1 = c.getFrontPoint1(); int[] p2 = c.getFrontPoint2(); coords[0][0] = p1[0] + (p2[0]-p1[0])/5; coords[0][1] = p1[1] + (p2[0]-p1[0])/5; coords[0][2] = (int) z; coords[1][0] = p2[0] - (p2[0]-p1[0])/2; // center point coords[1][1] = p2[1] - (p2[1]-p1[1])/2; coords[1][2] = (int) z; coords[2][0] = p1[0] + (p2[0]-p1[0])/3; coords[2][1] = p1[1] + (p2[1]-p1[1])/3; coords[2][2] = (int) (z + EXHEIGHT_H*2); coords[3] = coords[1]; coords[4][0] = p2[0] - (p2[0]-p1[0])/2; coords[4][1] = p2[1] - (p2[1]-p1[1])/2; coords[4][2] = (int) (z + EXHEIGHT_H*4); coords[5] = coords[1]; coords[6][0] = p2[0] - (p2[0]-p1[0])/3; coords[6][1] = p2[1] - (p2[1]-p1[1])/3; coords[6][2] = (int) (z+EXHEIGHT_H*2); coords[7] = coords[1]; coords[8][0] = p2[0] - (p2[0]-p1[0])/5; coords[8][1] = p2[1] - (p2[1]-p1[1])/5; coords[8][2] = (int) z; coords[9] = coords[1]; coords[10][0] = p2[0] - (p2[0]-p1[0])/3; coords[10][1] = p2[1] - (p2[1]-p1[1])/3; coords[10][2] = (int) (z-EXHEIGHT_H*2); coords[11] = coords[1]; coords[12][0] = p2[0] - (p2[0]-p1[0])/2; coords[12][1] = p2[1] - (p2[1]-p1[1])/2; coords[12][2] = (int) (z - EXHEIGHT_H*4); coords[13] = coords[1]; coords[14][0] = p1[0] + (p2[0]-p1[0])/3; coords[14][1] = p1[1] + (p2[1]-p1[1])/3; coords[14][2] = (int) (z - EXHEIGHT_H*2); return Arrays.asList(coords); }