본문 바로가기
반응형
SMALL

그룹 스터디 공부(IT 서적)/오브젝트15

15. 디자인 패턴과 프레임워크 아래의 블로그에 해당 프레임워크에 대한 설명이 자세히 설명돼어있어 첨부합니다 https://prodo-developer.tistory.com/64 2023. 10. 13.
14. 일관성 있는 협력 애플리케이션을 개발하다 보면 유사한 요구사항을 반복적으로 추가하거나 수정하게 되는 경우가 있다. -> 이러한 상황에서 각 협력이 서로 다른 패턴을 따를 경우에는 전체적인 설계의 일관성이 서서히 무너지게 된다. -> 객체지향 패러다임의 장점은 설계를 재사용할 수 있다는 것이다. -> 재사용은 공짜로 얻어지지 않는다. 재사용을 위해서는 객체들의 협력 방식을 일관성 있게 만들어야 한다. -> 과거의 해결 방법을 반복적으로 사용해서 유사한 기능을 구현하는 데 드는 시간과 노력을 대폭 줄일 수 있다. 또한 코드가 이해하기 쉬워진다. ⚈ 지금 보고 있는 코드가 얼마 전에 봤던 코드와 유사하다는 사실을 아는 순간 새로운 코드가 직관적인 모습으로 다가오는 것을 느끼게 될 것이다. ⚈ 14장의 주제 : 일관성 있는 협력.. 2023. 10. 13.
13 서브클래싱과 서브타이핑 상속의 용도 타입 계층 구현 : 부모클래스는 일반적인 개념을 구현하고 자식 클래스는 특수한 개념을 구현한다. 부모 클래스는 자식 클래스의 일반화(generalization) 자식 클래스는 부모 클래스의 특수화(specialization) 코드 재사용 간단한 선언만으로 부모 클래스의 코드를 재사용할 수 있다. 재사용을 위해 상속을 사용하는 경우 부모 클래스와 자식 클래스가 강하게 결합되어 변경이 어렵다. 상속을 사용하는 이유는 객체의 행동 을 기반으로 하는 타입 계층을 구현해야 한다. 타입 사이의 관계를 고려하지 않은 채 단순히 코드를 재사용하기 위해 상속을 사용해서는 안된다. 객체지향 프로그래밍 vs 객체기반 프로그래밍 객체기반 프로그래밍(Object-Based Programming) 상태와 행동을 캡슐.. 2023. 10. 2.
12 다형성 이번 장에서는 상속의 관점에서 다형성이 구현되는 기술적인 매커니즘을 살펴본다., 상속의 오해와 진실 코드 재사용을 목적으로 상속을 사용하면 변경하기 어렵고 유연하지 못한 설계에 이를 확률이 높아진다. 상속의 목적은 코드 재사용이 아니다. 상속은 타입 계층을 구조화하기 위해 사용해야 한다. 타입 계층은 객체지향 프로그래밍의 중요한 특성 중의 하나인 다형성의 기반을 제공한다. 객체지향 패러다임이 주목받기 시작하던 초기에 상속은 타입 계층과 다형성을 구현할 수 있는 거의 유일한 방법이었다. 하지만 최근의 언어들은 상속 이외에도 다형성을 구현할 수 있는 다양한 방법들을 제공하고 있다. 따라서 상속의 중요성이 이전에 비해 많이 낮아졌다. 다형성 다형성(Polymorphism) 이라는 단어는 ploy(많은) + m.. 2023. 10. 1.
chapter 10 상속과 코드 재사용 객체지향에서는 코드를 재사용하기 위해 '새로운'코드를 추가한다. 객체지향에서 코드는 일반적으로 클래스 안에 작성되기 때문에 객체지향에서 클래스를 재사용하는 전통적인 방법은 새로운 클래스를 추가하는 것이다. 클래스를 재사용하기 위해 새로운 클래스를 추가하는 가장 대표적인 기법인 상속에 관해 살펴보기로 한다. 객체지향에서는 상속 외에도 코드를 효과적으로 재사용할 수 있는 방법이 한 가지 더 있다. 새로운 클래스의 인스턴스 안에 기본 클래스의 인스턴스를 포함시키는 방법으로 흔히 합성이라고 부른다. 01 상속과 중복 코드 DRY 원칙 중복 코드는 변경을 방해한다. 이것이 중복 코드를 제거해아 하는 가장 큰 이유다. 중복 코드가 가지는 가장 큰 문제는 코드를 수정하는 데 필요한 노력을 몇 배로 증가시킨다는 것이다.. 2023. 9. 12.
09 유연한 설계 01 개방-폐쇄 원칙 개방-폐쇄 원칙은 다음과 같은 문장으로 요약할 수 있다. 소프트웨어 개체(클래스,모듈,함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 여기서 키워드는 '확장'과 '수정'이다. 이 둘은 순서대로 애플리케이션의 '동작'과 '코드'의 관점을 반영한다. * 확장에 대해 열려 있다. 애플리케이션의 요구사항이 변경될 때 이 변경에 맞게 새로운 '동작'을 추가해서 애플리케이션의 기능을 확장할 수 있다. * 수정에 대해 닫혀 있다. 기존의 '코드'를 수정하지 않고도 애플리케이션의 동작을 추가하거나 변경할 수 있다. 개방-폐쇄 원칙은 유연한 설계란 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계라고 이야기한다. 컴파일타임 의존성을 고정시키고.. 2023. 9. 4.
반응형
LIST