객체지향

    [오브젝트] 역할 책임 협력

    이 글은 오브젝트 책 3장을 읽고 정리한 글입니다. 객체 지향의 패러다임의 핵심은 역할, 책임, 협력이다. 오늘은 이에 대해 정리하고 이야기 해보고자 한다. 먼저 객체 지향의 본질은 단순히 여러 기능을 클래스로 쪼개서 구현하는 것이 아닌 객체들의 공동체를 창조하는 것이다. 협력 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용이다. 이러한 상호작용을 통해 객체들은 더 큰 책임을 수행할 수 있게 된다. 이러한 상호작용에 의해 객체들의 행동이 결정이 된다. 이러한 협력은 객체를 설계할 때 일종의 문맥이 되기 때문에 서로 다른 객체들이 특정 협력으로 묶일 때는 이들을 협력하는 파트너로 생각하고 설계를 해야한다. 책임 객체가 협력에 참여하기 위해 수행하는 로직이다. 이러한 책임은 2가지로 구분될 수..

    [오브젝트] 객체지향 프로그래밍

    [오브젝트] 객체지향 프로그래밍

    이 글은 오브젝트 책 2장을 읽고 정리한 내용입니다. 1장에서는 객체지향적 코딩이 필요한 이유를 공부했었다. 2장은 이러한 객체 지향적 코딩을 하기 위해서 어떤 것을 고려해야하는지를 정리해놓았다. 객체지향을 위한 코딩을 진행할 때는 어떤 클래스가 필요한지를 고민하기전에 어떤 객체들이 필요한지 고민하라 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야한다. 이 두가지를 고려해야한다고 강조한다. 먼저 1번 문장을 이해해보자. 객체 고려하기 어떤 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야를 도메인이라고 한다. 이러한 도메인의 요구사항과 프로그램을 객체라는 관점에서 바라 볼 수 있기 때문에 객체를 구성하는 개념들이 프로그램의 객체와 클래스로 매끄럽게 이어질 수 있다..

    [오브젝트] 절차지향과 객체지향

    [오브젝트] 절차지향과 객체지향

    이 글은 오브젝트 책 1장을 읽고 정리한 내용입니다. 먼저 실습한 코드를 보면서 설명을 해보겠다. 실습 내용 추첨을 통해 선정된 관람객에게 공연을 무료로 관람할 수 있는 초대장을 발송하는 것이다. 다음 코드는 책에 1장 챕터 1에 나오는 예시이다. https://github.com/RicardoKim/CodePracticeForObject/tree/0584127153da5c40b75d991af28b0aaa14fc2882 GitHub - RicardoKim/CodePracticeForObject: 오브젝트 책을 공부하면서 코드 실습을 위한 레포입니다. 오브젝트 책을 공부하면서 코드 실습을 위한 레포입니다. Contribute to RicardoKim/CodePracticeForObject developme..

    오버라이딩 vs 오버로딩

    오버라이딩 vs 오버로딩

    오버라이딩 정의 오버 라이딩이란 자식 클래스가 부모 클래스의 메소드를 상속 받은 후 해당 메소드들에 대한 수정을 진행 하는 것을 의미한다. 해당 과정에서 기존에 부모 클래스가 사용하던 메소드들이 가지는 input의 갯수와 데이터 타입들은 자식 클래스 에서도 동일하게 적용되어 질 때 오버라이딩이라고 불려진다. 오버로딩 정의 오버 로딩이란 같은 클래스 내에 메소드 이름이 인수가 다른 경우 중복을 허용하는 것을 의미한다. Q) 왜 필요한가 만약 상속받은 메소드가 자식클래스에서는 받는 인수마다 처리하는 과정이 다르다고 가정한다면 인수가 어떤 것이냐에 따라 메소드의 이름이 다수 생성될 것이다. 이는 중복되는 코드가 다수 생길 수 있습니다. 따라서 이를 방지하고자 오버로딩이 필요한것이다. 오버라이딩 vs 오버로딩 ..

    상속과 다형성

    Intro 상속과 다형성은 객체 지향을 공부하게 되면 항상 만나게 되지만 깊이 생각을 하지 않고 넘어가는 경우가 많았던거 같다. 그래서 이번 기회에 상속과 다형성은 왜 쓰이는지에 초점을 맞춰서 공부를 해보았고 그거에 대한 정리를 남기려고 한다. 상속 정의 이미 만들어져 있는 클래스를 부모 클래스라고 할때 해당 부모 클래스의 기능을 사용가능 하도록 해당 클래스의 기능을 받아오는 것을 상속이라고 하고 이로 인해 만들어지는 클래스를 자식 클래스라고 한다. 왜 사용할까? 1. 코드의 재활용 새로운 클래스를 만들 때 이미 다른 클래스에서 새롭게 만들 클래스에 필요한 메소드를 다수 가지고 있을 때 새로운 클래스는 이미 만들어져있는 클래스에 대하여 상속 받아 사용하게 된다면 기존 코드를 재활용 할 수 있고 코드도 간..