본문 바로가기

IT

ch.10 상속과 코드 재사용 추상화에 의존하자. NightlyDiscountPhone의 가장 큰 문제점은 Phone에 강하게 결합돼 있다. 즉 Phone이 변경될 경우 함께 변경될 가능성이 높다. 이 문제를 해결하는 가장 일반적인 방법은 자식 클래스가 부모클래스의 구현이 아닌 추상화에 의존하도록 만드는 것이다. 상속을 도입할 때 따르는 두가지 원칙 두 메서드가 유사하게 보인다면 차이점을 메서드로 추출하라. 메서드 추출을 통해 두 메서드를 동일한 형태로 보이도록 만들 수 있다. 부모 클래스의 코드를 하위로 내리지 말고 자식 클래스의 코드를 상위로 올려라. 부모 클래스의 구체적인 메서드를 자식 클래스로 내리는 것보다 자식 클래스의 추상적인 메서드를 부모 클래스로 올리는 것이 재사용성과 응집도 측면에서 더 뛰어난 결과를 얻을 수 있다. ..
ch.09 유연한 설계 03. 의존성 주입 외부로 부터 독립적인 객체가 인스턴스를 생성한 후 이를 전달해서 의존성을 해결하는 방법을 의존성 주입이라고한다. 생성자 주입 : 객체를 생성하는 시점에 생성자를 통한 의존성 해결 setter 주입 : 객체 생성 후 setter 매서드를 통한 의존성 해결 메세드 주입 : 메서드 실행 시 인자를 이용한 의존성 해결 Movie movie = new Movie ("아바타", new 객체) 위와 같은 예시가 생성자 주입 movie.setName("아바타") 위와 같은 예시 setter 주입 movie.calculateDiscountAmount(screening, new AmountDiscountPolicy(....)) 위와 같은 예시가 메서드 주입 사실 위와 같은 메서드 의존성 주입의 한 종류..
DI(Dependency Injection) 와 IOC(inversion of control) 안녕하세요 남갯입니다 github.com/namget/object_study 오브젝트 5장 일단 오브젝트 스터디하는 내용의 과제로 오늘은 DI와 IOC를 알아보고 정리하는 시간을 가져보려고 합니다. DI 의존성 주입 의존성 주입이란? 소프트웨어 엔지니어링에서 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. [위키 백과] 의존성 주입 ko.wikipedia.org/wiki/%EC%9D%98%EC%A1%B4%EC%84%B1_%EC%A3%BC%EC%9E%85 의존성 주입 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 소프트웨어 엔지니어링에서 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존..
[안드로이드] hilt code-lab 안녕하세요 남갯입니다. 오늘은 hilt code lab 에 대해 공부한것을 정리해보도록 하겠습니다. 힐트는 기존 Dagger(단검)가 사용하기 복잡하여 많은 사용자들이 사용을 못하고 있는부분을 Hilt(단검 손잡이) 더 쉽게 사용하도록 만들어주는 라이브러리입니다. 대부분 ServiceLocater 패턴을 통해 런타임에 생성해서 주입하거나 Koin을 이용하거나, 혹은 Dagger를 이용하겠지만 Hilt를 이용하면 Dagger를 더 쉽게 이용 가능합니다. developer.android.com/codelabs/android-hilt?hl=ko#1 Using Hilt in your Android app | Android 개발자 | Android Developers In this codelab, you'll b..
[페이스북] 페이스북 연동된 계정 해제 1. 연동된 계정으로 로그인합니다. 2. 설정 및 공개범위 클릭 3. 앱 및 웹사이트를 클릭합니다. 4. 페이스북 계정으로 되어있는 앱의 이름을 클릭한 뒤 삭제를 누릅니다.
[안드로이드] Compose 발표자료 남갯입니다. [안드로이드] Compose 발표자료 확인
[코틀린으로 배우는 함수형 프로그래밍] 4장 고차함수 안녕하세요 남갯입니다. 함수형프로그래밍에서는 함수를 객체처럼 다룬다. 고차함수를 통해 함수를 더 유연하게 다루는 방법에 대해 알아보고 고차함수의 장점을 살펴보자. 고차함수란? 코틀린의 함수들은 함수를 인자로 받거나 반환값으로 반환하는 것이 가능하다. 코틀린에서 함수는 일급함수이기 때문. 고차함수의 조건 - 함수를 매개변수로 받는 함수 - 함수를 반환하는 함수 명령형 언어는 문제를 해결하기 위해 상태를 변경 혹은 반복문을 사용하여 단계별 정의하지만 함수형 언어에서는 문제를 해결할 때 반드시 고차 함수를 사용해야 한다. fun highOrderFunction1(func : () -> Unit) : Unit { func() } fun highOrderFunction2() : () -> Unit{ return ..
[GOF] 생성패턴이란? 안녕하세요 남갯입니다 오늘은 GOF 생성패턴에 대해 포스팅 해보려고 합니다. 생성패턴이란? 생성패턴은 인스턴스를 만드는 절차를 추상화하는 패턴. 객체를 생성-합성 하는 방법이나 객체의 표현방법과 시스템을 분리해 줍니다. 상속보다는 복합을 사용하는쪽으로 진화되어 가면서 더 중요해지는 추세. 생성패턴의 특징 1. 생성패턴은 시스템이 어떤 구체 클래스를 사용하는지에 대한 정보를 캡슐화 2. 생성패턴은 이들 클래스의 인스턴스들이 어떻게 만들고 어떻게 서로 맞붙는지에 대한 부분을 완전히 가려줍니다. 즉 무엇이 생성되고 누가 이것을 생성하며 어떻게 생성이 되는지 언제 생성할 것이지에 대한 유연성을 확보 가능 추상팩토리패턴 의도 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생..