Object
-
2번째 챕터의 첫 시작은 이론으로 시작한다.오브젝트, 의존관계가 무엇인지 정의한다. 오브젝트오브젝트와 클래스는 다르다객체지향의 사실과 오해, 오브젝트 책을 통해서 많이 들어서 해당 내용은 인지하고 있다. 클래스는 오브젝트의 청사진과 같다. 클래스의 인스턴스 = 오브젝트이렇게 표현하면 둘의 관계가 보인다.추가적으로 자바의 배열도 오브젝트라고 한다. 의존관계 의존관계도 최근 보고 있는 오브젝트 챕터에서 언급된 내용이다. 컴파일의 의존관계, 런타임의 의존관계클래스를 추상화시켜 거기에 의존하라(런타임 의존관계가 달라짐) 의존 관계를 가지고 있으면 callee가 변경되면 caller에도 영향을 미칠 수 있다. 관심사의 분리Separation of Concerns (SoC)코드를 읽으며 무슨 일을 하는지 한참..
토비의 스프링 6 - 오브젝트와 의존관계2번째 챕터의 첫 시작은 이론으로 시작한다.오브젝트, 의존관계가 무엇인지 정의한다. 오브젝트오브젝트와 클래스는 다르다객체지향의 사실과 오해, 오브젝트 책을 통해서 많이 들어서 해당 내용은 인지하고 있다. 클래스는 오브젝트의 청사진과 같다. 클래스의 인스턴스 = 오브젝트이렇게 표현하면 둘의 관계가 보인다.추가적으로 자바의 배열도 오브젝트라고 한다. 의존관계 의존관계도 최근 보고 있는 오브젝트 챕터에서 언급된 내용이다. 컴파일의 의존관계, 런타임의 의존관계클래스를 추상화시켜 거기에 의존하라(런타임 의존관계가 달라짐) 의존 관계를 가지고 있으면 callee가 변경되면 caller에도 영향을 미칠 수 있다. 관심사의 분리Separation of Concerns (SoC)코드를 읽으며 무슨 일을 하는지 한참..
2024.10.19 -
객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 것- 클래스를 재사용하기 위해 새로운 클래스를 추가하는 가장 대표적인 기법인 상속에 관해 살펴보자- 재사용 관점에서 상속이란 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 구현 기법 - 상속 이외에 코드를 효과적으로 재사용하는 방법인 합성은 다음장에서 배워보자 상속과 중복 코드 DRY 원칙 (Don't Repeat Yourself)전화요금을 계산하는 애플리케이션을 통한 예시- 밤에 전화하면 세금을 할인해 주는 Phone의 등장을 상속으로 구현하려 함 타입 코드 사용 - 낮은 응집도와 높은 결합도라는 문제 발생if(type == PhoneType.REGULAR) {} else if (type == Pho..
[Object] 10장 : 상속과 코드 재사용객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 것- 클래스를 재사용하기 위해 새로운 클래스를 추가하는 가장 대표적인 기법인 상속에 관해 살펴보자- 재사용 관점에서 상속이란 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 구현 기법 - 상속 이외에 코드를 효과적으로 재사용하는 방법인 합성은 다음장에서 배워보자 상속과 중복 코드 DRY 원칙 (Don't Repeat Yourself)전화요금을 계산하는 애플리케이션을 통한 예시- 밤에 전화하면 세금을 할인해 주는 Phone의 등장을 상속으로 구현하려 함 타입 코드 사용 - 낮은 응집도와 높은 결합도라는 문제 발생if(type == PhoneType.REGULAR) {} else if (type == Pho..
2024.10.06 -
8장에서 배운 의존성 관리기법들을 정리하는 챕터라고 생각이름을 가진 설계 원칙을 통해 기법들을 정리 개방-폐쇄 원칙(open-closed principle)(OCP)확장 가능하고 변화에 유연하게 대응할 수 있는 설계확장에 열려 있다 : '동작'을 추가해서 기능을 확장수정에 대해 닫혀 있다 : '코드'를 수정하지 않고 동작을 추가하거나 변경유연한 설계란 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라의존성 관점에서 개방-폐쇄 원칙을 따르는 설계- 컴파일타임 의존성은 유지하면서 런타임 의존성의 가능성을 확장하고 수정할 수 있는 구조 추상화가 핵심이다개방-폐쇄 원칙의 핵심은 추상화에 의존하는 것추상화란 핵심적인 부분만 남기고..
[Object] 9장 : 유연한 설계8장에서 배운 의존성 관리기법들을 정리하는 챕터라고 생각이름을 가진 설계 원칙을 통해 기법들을 정리 개방-폐쇄 원칙(open-closed principle)(OCP)확장 가능하고 변화에 유연하게 대응할 수 있는 설계확장에 열려 있다 : '동작'을 추가해서 기능을 확장수정에 대해 닫혀 있다 : '코드'를 수정하지 않고 동작을 추가하거나 변경유연한 설계란 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라의존성 관점에서 개방-폐쇄 원칙을 따르는 설계- 컴파일타임 의존성은 유지하면서 런타임 의존성의 가능성을 확장하고 수정할 수 있는 구조 추상화가 핵심이다개방-폐쇄 원칙의 핵심은 추상화에 의존하는 것추상화란 핵심적인 부분만 남기고..
2024.08.26 -
객체지향 설계의 핵심은협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는 데 있다의존성 이해하기변경과 의존성의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다의존성은 함께 변경될 수 있는 가능성을 의미, 모든 경우에 의존성이 전이되는 것은 아니다의존성이 실제로 전이될지 여부는 견경의 방향과 캡슐과의 정도에 따라 달라진다. 런타임 의존성과 컴파일타임 의존성런타임 의존성 : 객체 사이의 의존성 컴파일타임 의존성 : 클래스 사이의 의존성 런타임 의존성과 컴파일타임 의존성이 다를 수 있다 컨텍스트 독립성클래스가 사용될 특정한 문맥에 대해 최소한의 가정만으로 이뤄져 있다면다른 문맥에서 재사용하기가 더 수월해진다. 의존성 해결컴파일타임 의존성을 실행 컨텍스트에 맞는 적절한 런타임 의존..
[Object] 8장 : 의존성 관리하기객체지향 설계의 핵심은협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는 데 있다의존성 이해하기변경과 의존성의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다의존성은 함께 변경될 수 있는 가능성을 의미, 모든 경우에 의존성이 전이되는 것은 아니다의존성이 실제로 전이될지 여부는 견경의 방향과 캡슐과의 정도에 따라 달라진다. 런타임 의존성과 컴파일타임 의존성런타임 의존성 : 객체 사이의 의존성 컴파일타임 의존성 : 클래스 사이의 의존성 런타임 의존성과 컴파일타임 의존성이 다를 수 있다 컨텍스트 독립성클래스가 사용될 특정한 문맥에 대해 최소한의 가정만으로 이뤄져 있다면다른 문맥에서 재사용하기가 더 수월해진다. 의존성 해결컴파일타임 의존성을 실행 컨텍스트에 맞는 적절한 런타임 의존..
2024.08.21