728x90 분류 전체보기286 11장. null 대신 Optional 클래스 값이 없는 상황을 어떻게 처릴할까? 1 2 3 public String getCarInsuranceName(Person person) { return person.getCar().getInsurance().getName(); } Colored by Color Scripter cs 위 코드의 경우 만약 getCar 메서드를 통해 가져온 객체가 null이거나 getInsurance의 반환값이 null이라면 NullPointerExceptino이 발생한다. 보수적인 자세로 NullPointerException 줄이기 위 코드와 같은 NullPointerException을 줄이기 위해선 다음과 같은 보수적 방식을 사용할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 public String getC.. 2022. 3. 27. 역할 사슬 패턴(Chain Of Responsibility) 요청에 대한 처리를 어느 객체가 수행할 수 있는지 모를 때 사용한다. 요청이 들어오면, 이를 수신하는 객체가 해당 요청을 처리할 수 없는 경우 다음 객체에게 요청을 넘긴다. 요청을 처리할 수 있는 객체가 요청을 받으면 이를 처리한다. 예제는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 public ab.. 2022. 3. 26. 상태 패턴(State Pattern) 객체가 상태에 따라 다른 행위를 할 때, 객체가 자신의 상태를 체크하지 않고 상태를 객체로 만들어 상태 객체가 해당 행위를 가지고 있는 것 패턴이다. 상태 패턴의 예시는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 public interface State { public void doAction(Context context); } public class StartState implemetns State { private static StartState star.. 2022. 3. 26. 함수형 프로그래밍 JS에서 객체지향 패러다임을 사용하기는 쉽지 않다. JS는 프로토타입 기반 객체지향을 사용하고 this 역시 자바 같은 언어에서의 this와는 다르기 때문이다. 따라서 객체지향 대신 함수형을 사용한다면 프로젝트의 유지보수가 조금은 더 쉬워지고, 디버깅도 쉬워진다. 함수형 프로그래밍은 모든 것을 함수로 표현한다. 따라서 함수형 프로그래밍에서는 함수의 역할(입력을 받아 아웃풋을 내보내는 것)을 고려하면 된다. 명령형 프로그래밍과는 다르게 동작을 위해 동작의 구현 과정까지 세세히 생각하지 않아도 된다. 즉, 함수형 프로그래밍은 어떤 동작을 수행하기 위해 동작 과정을 세세히 명령하는 것이 아닌, "어떤 동작을 하겠다!" 라고 선언해야 한다. 다음 예제를 보자. 1 2 3 const name = "yunki"; .. 2022. 3. 26. 이전 1 ··· 12 13 14 15 16 17 18 ··· 72 다음 728x90