일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android P
- RxJava
- Django REST framework
- C++
- Java
- Kotlin
- kodility
- 안드로이드
- C/C++
- android architecture component
- Django REST
- FLUTTER
- mfc
- Flutter TextField
- livedata
- UWP
- dart
- Python
- 안드로이드 구글맵
- 알고리즘
- flutter firestore
- NDK
- C
- 프로그래머스
- Android
- Rxjava2
- RxAndroid
- Django REST Android
- 코틀린
- android push
- Today
- Total
목록2018/09/17 (3)
개발하는 두더지
[Effective Java 규칙18] 추상 클래스 대신 인터페이스를 사용하라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 이미 존재하는 클래스를 개조해서 새로운 인터페이스를 구현하는 것은 간단하다. 자바 플랫폼에 Comparable 인터페이스가 추가된 이후, 많은 기존 클래스들이 Comparable을 구현하도록 개조되었다. 인터페이스는 믹스인(mixin)을 정의하는데 아주 유용한데 믹스인이 무엇이냐면어떤 주기능 A를 제공하는데 선택 기능 B를 제공하여 기능을 혼합할 수 있다는 것을 의미한다. 예를들어 Comparable을 구현한 클래스를 예를 들어보자. 클래스는 원래 본연의 기능A가 있을 것이다.. 하지만 Comparable을 구현(impleme..
[Effective Java 규칙17] 상속을 위한 설계와 문서가 없다면 상속하지 마라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 상속하고 메서드를 재정의하면 무슨일이 생기는지 어떻게 사용하는지 반드시 문서에 남겨야 한다. 하지만 문서만 제대로 작성했다고 상속에 적합한 설계가 되지는 않는다. 클래스 내부 동작을 자유자재로 수정/접근할 수 있는 메서드를 신중하게 선정한 다음에 protected 메서드 형태로 제공해야 한다. 이 protected로 사용할 메서드를 어떻게 정할 것인가? 정확한 답은 없다. 열심히 생각하고 신중하게 고른 다음, 실제로 하위 클래스들을 만들어서 테스트하는 것이 최선이다. 저자에 의하면 상속을 위해 하위 클래스 3개정도 만..
[Effective Java 규칙16] 계승하는 대신 구성하라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 상속은 강력한 도구이지만 캡슐화 원칙을 침해하므로 문제를 발생시킬 가능성이 있다. 그리고 상위 클래스와 하위 클래스가 IS-A 관계일 때만 사용하는 것이 좋다. 만약 IS-A 관계가 성립해도, 하위 클래스가 상위 클래스와 다른 패키지에 있거나 상속을 고려해 만들어진 클래스가 아니라면 하위 클래스는 깨지기 쉽다. 이런 문제들을 피하려면 상속(extends)대신 구현(implements)해야한다. 래퍼 클래스를 만든다면 하위 클래스를 만드는 것보다 견고하고 강력하다 //TODO 철학/유래 찾아보기자바는 처음 설계부터 다중상속을 지원하지 않게 만들..