좋은 부분이 너무 많아서 책을 많이 옮겨왔는데 혹시 문제가 된다면 말씀해주세요-! 제가 조금 재구성한 부분이 있기때문에 꼭 책을 읽어보시는 것을 추천드립니다. [ 요약 ] 상속 주의사항 1. 상속은 코드 재사용이 아니라 타입 계층을 구현하기 위해 쓴다. (서브클래싱이 아니라 서브타이핑을 한다.) 2. is-a 관계가 언어적으로 맞다고 상속관계를 막 쓰면 안된다. 행동호환성을 고려해야한다. [1] 상속의 목적 상속을 사용하는 일차적인 목표는 코드 재사용이 아니라 타입 계층을 구현하는 것이여야한다. 상속은 코드를 쉽게 재사용할 수 있는 방법을 제공하지만 부모 클래스와 자식 클래스를 강하게 결합시키기 때문에 설계의 변경과 진화를 방해한다. 반면 타입 계층을 목표로 상속을 사용하면 다형적으로 동작하는 객체들의 ..
좋은 부분이 너무 많아서 책을 많이 옮겨왔는데 혹시 문제가 된다면 말씀해주세요-! 제가 조금 재구성한 부분이 있기때문에 꼭 책을 읽어보시는 것을 추천드립니다. [1] 캡슐화 [ 캡슐화에 대한 오해 ] 많은 사람들이 객체의 캡슐화에 관한 이야기를 들으면 데이터 은닉(data hiding)을 떠올린다. 데이터 은닉이란 클래스의 모든 인스턴스 변수는 private으로 선언해야하고 오직 해당 클래스의 메서드 만이 인스턴스 변수에 접근 할 수있어야하다는 것이다. 그러나 캡슐화는 데이터 은닉 이상이다. 캡슐화란 단순히 데이터를 감추는 것이 아니다. 소프트웨어에서 변할 수 있는 모든 개념을 감추는 것이다. 코드 수정으로 인한 파급효과를 제어할 수 있는 모든 기법이 캡슐화의 일종이다. [ 캡슐화의 여러 종류 ] - 데..
좋은 부분이 너무 많아서 책을 많이 옮겨왔는데 혹시 문제가 된다면 말씀해주세요-! 제가 조금 재구성한 부분이 있기때문에 꼭 책을 읽어보시는 것을 추천드립니다. [1] 클래스의 응집도를 판단하는 세가지 방법 1. 변경의 이유 서로 연관성이 없는 기능이나 데이터가 하나의 클래스안에 뭉쳐 있으면 응집도가 낮은 것이다. 클래스가 하나 이상의 이유로 변경돼야한다면 응집도가 낮은 것이다. 변경의 이유에 따라 클래스를 분리하라 2. 인스턴스 변수가 초기화되는 시점 클래스의 속성이 서로 다른 시점에 초기화되거나 일부만 초기화된다는 것은 응집도가 낮다는 증거다. 응집도가 높은 클래스는 인스턴스를 생성할 때 모든 속성을 함께 초기화한다. 반면 응집도가 낮은 클래스는 객체의 속성 중 일부만 초기화되고 일부는 초기화되지 않은..
정말 정말 정말 좋은 책이다,, 좋은 예제와 쉽고 재밌는 글로 객체지향을 제대로 이해시켜주신다. (🥺💜) 저의 개발도서 TOP1 🏆🏅입니다. 기억하고 싶은 것을 기록합니다 ✏️ 좋은 부분이 너무 많아서 책을 많이 옮겨왔는데 혹시 문제가 된다면 말씀해주세요-! (예제도 함께 있는 책을 꼭 읽어보시는 것을 추천드립니다!) [1] 좋은 설계란? 좋은 설계란 오늘의 기능을 수행하면서 내일의 변경을 수용할 수 있는 설계다. 좋은 설계란 오늘 요구하는 기능을 온전히 수행하면서 내일의 변경을 매끄럽게 수용할 수 있는 설계다. [2] 좋은 객체지향 설계란? 좋은 객체지향 설계는 협력하는 객체들 사이의 의존성을 적절하게 조절함으로써 변경에 용이한 설계를 만드는 것이다. 구체적으로 말하면.. 객체지향의 본질은 협력하는 객..
- Total
- Today
- Yesterday
- ipad multitasking
- drf custom error
- Django Firebase Cloud Messaging
- 구글 Geocoding API
- flutter build mode
- METAL
- Sketch 누끼
- PencilKit
- Watch App for iOS App vs Watch App
- flutter deep link
- flutter 앱 출시
- ribs
- 플러터 얼럿
- Flutter Clipboard
- cocoapod
- 플러터 싱글톤
- flutter dynamic link
- DRF APIException
- 장고 Custom Management Command
- Django FCM
- Python Type Hint
- Dart Factory
- Flutter 로딩
- Flutter getter setter
- Flutter Text Gradient
- github actions
- Django Heroku Scheduler
- SerializerMethodField
- Flutter Spacer
- 장고 URL querystring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |