본문 바로가기

Book88

[독서 기록] 오브젝트 1장 객체, 설계 오브젝트 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 존재로 바라보는 것이다. 세번째 걸음을 내디딜 수 있는지 여부는 협력에 참여하는 객체 들에게 얼마나 적절한 역할과 책임을 부여할 수 있느냐에 달려 있다. 객체지향의 마지막 걸음은 앞에서 설명한 개념들을 여러분이 사용하는 프로그래밍 언어라는 틀에 흐트러짐 없이 담아낼 수 있는 기술을 익히는 것이다. 《객체지향의 사실과 오해》가 첫번째 걸음과 두번째 걸음인 객체와 협력에 초점을 맞췄다면 《오브젝트: 코드로 이해하는 객체지향 설계》는 세번째와 네번째 걸음인 책임의 할당과 그 구현에 초점을 맞춘다. 이 책을 읽고 나면 .. 2023. 1. 13.
[독서 기록] 모던 자바 인 액션 18장-21장, 함수형 프로그래밍과 자바 진화의 미래 모던 자바 인 액션 18장-21장, 함수형 프로그래밍과 자바 진화의 미래 '어떻게'에 집중하는 프로그래밍 형식은 고전의 객체지향 프로그래밍에서 이용하는 방식이다. 때로는 이를 명령형 프로그래밍이라고 부르기도 하는데 다음 코드에서 보여주는 것처럼 (할당, 조건문, 분기문, 루프 등) 명령어가 컴퓨터의 저수준 언어와 비슷하게 생겼기 때문이다. Transaction mostExpensive = transactions.get(0); if(mostExpensive == null) { throw new IllegalArgumentException("Empty list"); } for (Transaction t: transactions.subList(1, transactions.size())) { if(t.getVa.. 2023. 1. 13.
[독서 기록] 모던 자바 인 액션 13장, 디폴트 메서드 모던 자바 인 액션 13장, 디폴트 메서드 자바의 디폴트 메서드 : 기존 인터페이스를 구현하는 클래스가 자동으로 인터페이스에 추가도니 새로운 메서드의 디폴트 메서드를 상속받게 한다 List 인터페이스의 sort 메서드 default void sort(Comparator 2023. 1. 11.
[독서 기록] 모던 자바 인 액션 12장, 새로운 날짜와 시간 api java.time 패키지의 local 을 사용해보기 LocalDate 만들고 값 읽기 LocalDate date = LocalDate.of(2017, 9, 21); int year = date.getYear();// 2016 Month month = date.getMonth();// September int day = date.getDayOfMonth();// 21 DayOfWeek dow = date.getDayOfWeek(); // thursday int len = date.lenghOfMonth();// 31 boolean leap = date.isLeapYear(); // false (윤년 여부) 팩토리 메서드 now는 시스템 시계의 정보를 이용해서 현재 날짜 정보를 얻는다. LocalDate t.. 2023. 1. 11.
[독서 기록] 모던 자바 인 액션 11장 null 대신 Optional 클래스 11장 null 대신 Optional 클래스 보수적인 null 처리법 public String getCarInsuranceName(Person person) { if (person != null) { Car car = person.getCar(); if (car !=null) { Insurance insurance = car.getInsurance(); if (insurance !=null) { return insurance.getName(); } } } } returrn "Unknown"; } - 365p null 때문에 발생하는 문제 - 에러의 근원이다 - 코드를 어지럽힌다 - 아무 의미가 없다 - 자바 철학에 위배된다 - 형식 시스템에 구멍을 만든다 - 367p 값이 있으면 Optional 클래스는.. 2023. 1. 11.