[elegant]ch04 ! 끝!
2022. 6. 23. 22:33
책/엘레강트 오브젝트
모든 내용은 정답에 대한 내용이 아닙니다 개인적인 생각들이 추가 되어있으며,책의 내용에 대한 의문도 적어두었습니다 Null 반환 대신 예외던지기 null 반환 메소드 클라이언트에서는 “null 방어 코드" 를 작성해야만 한다. 반환 결과를 확인하는 코드를 작성해야만 한다 → 객체지향세계에서 객체는 “(자신만의 행동, 상태, 생명주기 를 가지는 )자율적인 객체" 이고, 우리는 이 “객체를 신뢰”하며 사용해야 한다. 그런데 객체가 반환하는 결과를 확인해야만 한다면 “신뢰 할 수 없는 객체" 가 되는 것이나 다름없다. 객체는 자신의 행동을 책임져야 한다. 심지어 내부적으로 예외를 발생시키는 것도 괜찮은데, 그 사실에 대해 알려줘야 한다. null 을 반환하는 객체를 신뢰할 수가 없으니 우리는 반환된 결과를 다..
[elegant] ch03 (정리중)
2022. 6. 23. 02:09
책/엘레강트 오브젝트
5 개 이하의 public 메소드만 노출하세요 → 작은 객체를 만드세요 작은 객체를 만들 수록 유지보수에 좋다는 의견에는 동의한다. 작은 크기의 객체를 만들 수록, 응집도가 높은 객체를 만들 “확률"이 높아지기 때문이다. 하지만 그 “크기" 에 대해서는 약간 의문스럽다. 책의 저자는 항상 단정지어 “이렇게만 만들어!!!” 라고 하는데 그 내용을 추상화 시켜서 딱 “ 작은 크기의 객체를 만들어 유지보수성을 높이자" 정도로만 생각하면 좋을 듯 하다. 그리고 여기서 는 “public 메소드의 개수를 제한" 하고 있는데, 실질적으로 객체 사이에 메시지를 주고 받을 때의 메시지가 “퍼블릭 메소드" 이기 때문이다. 이는 해당 “객체가 제공하는 기능" 에도 해당된다고 생각한다. 만약 그 개수가 너무 많다면, 너무 많..
[elegant] ch02 - 2.8
2022. 6. 15. 11:37
책/엘레강트 오브젝트
엘레강트 오브젝트의 ch2.8 을 읽으며 실습의 필요성이 느껴져 아래와 같이 진행해보았다. 생각과정이 꽤 많이 들어가서 이상한 코드들이 존재할 수 있으니 많은 첨언 부탁드립니다 🥺 외부 자원( 외부 서버 등)에 의존하는 클래스를 테스트하기 위한 방법은 뭐가 있을까?? 의존하는 인터페이스에 대한 모의객체 생성하기 우리는 이 가짜 객체 중 Mocking 의 단점에 대해 살펴볼 것이다 우리는 이 가짜 객체 중 하나인 Fake 객체를 사용 해 볼 것이다. 우리는 이 가짜 객체 중 Fake 객체의 장점에 대해 살펴볼 것이다 결론은 → 가능하다면 인터페이스에 대한 Fake 클래스를 작성하여 단위테스트를 합시다!!! (이 글을 작성할 때는 test double 에 대한 정리가 안되어 있었어서 그런지 혼란스러운 부분이..
[elegant]ch02_ ~ 2.6.4
2022. 6. 9. 01:24
책/엘레강트 오브젝트
가능하면 적게 캡슐화 객체는 함께 동작하는 객체들의 집합체 이기 때문에, 객체에는 캡슐화된 객체들이 있어야 한다 . 객체는 상태(내부의 객체)를 이용해 식별되어야 하는데, Java 에서는 껍질(==이나 Object 클래스의 기본적인 equals() 정의를 생각해보면 된다 ) 로 비교하고 있어 결함이 존재한다는 얘기를 하고 있다. 책에서 “상태로 객체를 식별" 한다는 것은 값객체에 대한 말인가? 엔티티와 값객체를 구분하면서 쓰여진 것인지 그 의도가 분명하지 않다는 생각이 들었다. 객체에 너무 많은 상태가 존재하는 것 보다는, 일부 상태를 캡슐화한 이루어져야 한다. 그 이유는 너무 많은 상태를 가진 객체는 인간의 인지적 한계로 이해하기 어렵기 때문이다. 상태를 객체들로 쪼개놓으면, 개별적인 객체들을 이해하기..
[elegant] 1. Birth 와 관련 자료 발표 영상
2022. 6. 5. 16:29
책/엘레강트 오브젝트
이 책은 객체가 살아있는 생명체인 것 처럼 표현한다. 객체가 태어나고 학습하고 취업하고 은퇴한다는.. 일종의 객체의 생명주기? 로 컨텐츠를 설명하고 있다. 그 중 첫 번째 챕터인 Birth 내용을 정리한다 +++(추가) 교육을 수강하며 ch01 과 관련하여 발표했던 자료가 있어 첨부한다 https://present.do/documents/62dd647c85df05656ca15627?page=0 객체의 가시성 객체의 가시성? 숫자 5 는 extra 라는 Cash 타입 객체 의 내부에 캡슐화 되어있다.반면 외부세계는, extra 객체가 어떻게 캡슐화 되어 있는가에 따라 extra 내부에 존재하는 5 를 직접적으로 볼 수도, 간접적으로 볼 수도 있을 것이다. if(price < 100){ Cash extra ..