
이 글은 객체지향에 대한 사실과 오해를 가장 중요한 점만 뽑아서 정리한 글입니다! 따라서 객체 지향에 대한 단서가 전혀 없는 사람이 읽기에는 약간 어렵습니다. 정리된 문장을 이해하면서 천천히 읽으면 객체지향을 잘 이해할 수 있다.
협력 객체 커뮤니티
사람들이 함께 일한다
커피리퍼블릭에서 아침식사
자신의 역할에 책임을 지고 협력하라이는 커피가 제공될 때까지 고객, 바리스타 및 출납원의 행동에 반영됩니다.
(예: 고객: 주문. 계산원: 주문을 받고 바리스타에게 음료 준비를 요청합니다. 계산원: 음료를 만들어 고객에게 제공합니다.)
역할, 책임 및 협업은 나중에 논의됩니다.
요청과 답변으로 구성된 협업

일반적으로 문제를 해결하려면 여러 사람이나 역할이 필요하기 때문입니다. 일반적으로 요청은 체인으로 이루어집니다.나무 상자.요청 및 응답에 대해 다른 사람들과 협력하십시오. 성공 여부는 해당 역할의 각 개인이 요구 사항을 얼마나 성실하게 이행하는지에 달려 있습니다.
역할과 책임
특정 역할은 특정 작업을 수행해야 합니다. 특정 역할에는 특정 책임이 내포되어 있음을 알 수 있습니다.
생각해 볼 개념
하나. 같은 역할을 맡은 여러 사람(역할은 출납원, 바리스타, 고객을 의미)
2. 역할은 상호 교환 가능수단
삼. 작업의 자율적 수행(책임이란 당신이 해야 할 일을 의미합니다. 캐셔: 주문을 받는 것 등)
4. 사람 여러 역할을 동시에 맡다할수있다.
역할, 책임, 협업
기능을 구현하기 위해 함께 작동하는 개체
앞에 “사람”이라는 단어 물체요청으로 소식요청을 처리하는 방법 방법대부분의 설명을 객체 지향의 맥락으로 옮길 수 있습니다.
역할과 책임을 다하는 협업 개체
응용 프로그램 기능은 덜 책임로 나누어진다 책임은 적절한 역할을 맡을 수 있는 단위에서 수행됩니다.직무를 수행하는 과정에서 다른 개체에 도움 요청 책임감은 객체지향 설계의 품질을 결정하는 가장 중요한 요소입니다. 책임이 명확하지 않은 개체는 응용 프로그램을 망칠 수 있습니다.
사물의 역할은 사람과 마찬가지로 다음과 같은 속성을 가지고 있습니다.
하나. 여러 개체가 동일한 역할을 수행할수있다.
2. 역할은 상호 교환 가능수단
삼. 모든 개체 작업의 자율적 수행로 선택 가능
4. 물건 여러 역할을 동시에 맡다할수있다.
협동하며 살아가는 사물들
애플리케이션의 윤곽을 정의하는 것은 역할, 책임 및 협업이지만 실제로는 협력에 참여하는 주체는 객체입니다.모두. 협업의 조정은 개체에 의해 결정됩니다. 협력의 질은 대상의 질에 달려 있기 때문입니다.
객체는 다음 두 가지 덕목을 가져야 합니다. 두 덕목 간의 균형이 객체의 품질을 결정합니다.
1. 객체는 충분히 “협업적”이어야 합니다.
다른 개체의 요청에 귀를 기울이고 적극적으로 도움을 요청할 수 있을 만큼 열린 마음을 가져야 합니다.
2. 객체는 충분히 “자율적”이어야 합니다.
개체는 다른 개체의 명령을 따르지 않습니다. 요청에만 응답합니다. 객체는 응답 방법과 요청에 대한 응답 여부를 자율적으로 결정합니다.
상태와 동작이 있는 자율 객체
사물이 협력에 참여하는 과정에서 스스로 판단하고 결정하는 자율적 존재가 되도록 필요한 조치와 상태가 함께 있어야 합니다.
ex) 바리스타가 음료 레시피를 알고 있는 상태, 알려진 음료 레시피로 음료를 준비하는 동작(상태)
협업 및 뉴스
객체지향에서 그냥 소통의 수단오전.
객체는 다른 객체에 요청을 하고(메시지 보내기) 다른 객체로부터 요청을 받습니다(메시지 받기).
방법과 자율성
메소드는 수신된 메시지를 처리하는 메소드입니다.
커피를 만들어달라는 페이지에서 커피가 만들어지기를 기대합니다하지만 커피가 만들어지는 특정한 방식에 관심이 없습니다..
다시 말해서 외부 요청이 무엇인지를 표현하는 메시지와 특정 메소드인 메소드를 분리하는 것은 객체 자율성을 높이는 핵심 메커니즘입니다.
또한 캡슐화의 개념을 광범위하게 다룹니다.
객체 지향의 본질
이전 콘텐츠의 간단한 요약
1. 객체 지향이란 무엇입니까? 시스템과 상호 작용하는 자율 객체 커뮤니티객체를 사용하여 시스템을 공유합니다.
2. 자율 객체란 무엇입니까? 상태와 행동~와 함께 스스로 책임지는 객체
3. 기능 구현을 목적으로 하는 개체 다른 개체와 협력. 협력의 틀 안에서 주어진 역할을 다하다그리고 역할은 관련된 책임의 집합입니다.
4. 객체는 다른 객체와 다릅니다. 협업을 위해 메시지 보내기그리고 메시지 수신 개체는 메시지를 처리하기 위한 적절한 방법을 독립적으로 선택합니다.
객체 지향
코드를 포함하는 클래스의 관점에서 메시지를 교환하는 대상의 관점으로 사고의 중심을 옮겨야 합니다. 어떤 클래스가 필요한지는 중요하지 않습니다. 특정 메시지를 송수신하여 협력하는 객체하려고
객체 지향의 핵심은 클래스가 아닙니다. 적절한 책임이 있는 역할 간에 유연하고 강력한 파트너십을 구축하는 것이 객체 지향의 핵심입니다. 클래스는 공동 작업에 참여하는 개체를 만들기 위한 구현 메커니즘일 뿐입니다.
클래스의 구조와 메서드가 아니라 역할, 책임 및 객체가 함께 작동하는 방식에 집중하십시오. 객체 지향은 클래스 지향이 아니라 객체 지향입니다.
이상한 나라의 물건
객체 지향 및 인식
객체 지향은 직관적이기 때문에 그것은 세상을 자율적이고 독립적인 대상으로 해부하는 인간의 기본적인 인지 능력을 기반으로 하기 때문입니다.
그러나 객체지향에서는 현실 세계를 바탕으로 새로운 세계를 창조하다자동차가 스스로 출발하고 은행 계좌가 독립적으로 돈을 인출하도록 해야 합니다.
사물과 원더랜드
이상한 나라의 앨리스
이상한 나라의 앨리스 책에 대한 간략한 소개. 40cm 높이의 문을 통과하기 위해 앨리스는 자신의 몸을 작게 만드는 방법을 생각합니다. 액체, 케이크, 버섯 및 높이가 바뀌는 부채는 높이를 낮추고 40cm 문을 통과할 수 있습니다.
앨리스 개체
앨리스의 상태는 그녀의 행동에 의해 결정되지만 행동의 결과를 결정하는 것은 상태입니다. Alice가 Alice보다 150cm 더 크면 케이크를 먹은 후 Alice는 원래 키에 130cm에 150cm를 더한 280cm가 됩니다.
그리고 앨리스는 키가 130cm이든 280cm이든 앨리스입니다. 즉, 앨리스는 상태 변화에 관계없이 고유한 존재임을 확인할 수 있다.
앨리스의 특징
1.앨리스 상태가 있으며 상태를 변경할 수 있습니다.하다.
2. 앨리스의 상태를 바꾸는 것은 앨리스의 행동오전.
– 행동하다 결과는 조건에 따라 다름오전.
– 행동하다 순서는 결과에 영향을 미칩니다미친
삼. Alice는 각 상태에서 고유하게 식별 가능합니다.하다.
객체 및 소프트웨어 랜드
객체는 상태, 동작 및 정체성을 가진 엔터티보는 것이 가장 효과적입니다.
조건
Alice의 “키”와 “위치”는 객체가 아닙니다. 음료와 케이크의 “금액”은 항목이 아닙니다. 그 자체로 의미를 갖는 대신에, 다른 객체의 속성을 표현하는 데 사용됩니다. 위와 같이 단순한 값일 때 속성(attribute)이라고 합니다.
다른 개체의 상태를 나타내기 위해 개체를 사용해야 하는 경우가 있습니다. 앨리스가 술잔을 들고 있을 때 앨리스의 상태 일부는 술이라는 물건을 통해 표현된다.
이때 객체의 상태를 구성하는 모든 특성은 개체 속성그것은 말한다.

또한 개체 간의 의미 있는 연결 만들기말하다. 객체는 링크를 통해서만 메시지 보내기보내고 받을 수 있습니다. 당신이 참조 객체가 다른 객체의 식별자를 알고 있음보지마. 특성에 속성 연결 두 가지 조합으로 표현할 수 있습니다.
상태는 객체가 주어진 시점에 가지고 있는 정보의 양입니다.객체의 구조적 특성을 나타냅니다. 개체는 다른 개체에 직접 액세스하거나 상태를 변경할 수 없습니다.
객체 지향의 기본 아이디어는 상태와 행동을 하나의 단위로 조작하기 위한 그룹화오전. 물체 자신의 행동에 의해서만 상태가 변경되도록 보장함으로써 객체의 자율성잡고 있다
액션
상태와 행동
객체의 자발적인 행동만이 객체의 상태를 변경합니다.오전.
상태와 행동 사이다음과 같은 관계가 있습니다.
1. 개체의 동작은 해당 상태의 영향을 받습니다.
2. 개체의 동작이 상태를 변경합니다.두고
상태의 개념을 사용 두 가지 관점에서 동작을 설명합니다.그것은 당신이 할 수 있다는 것을 의미합니다.
1. 상호 작용이 현재 상태에 따라 달라지는 방식
2. 상호 작용이 현재 상태를 변경하는 방법
협력과 행동
물체 다른 객체와 협업하는 유일한 방법은 객체에 요청을 보내는 것입니다.오전. 협업 과정에서 객체 다른 객체와 자신의 상태를 변경합니다.
작업은 두 가지 결과를 생성합니다.오전
1. 개체 자체의 상태 변경
2. 작업 내에서 협력하는 다른 개체에 메시지 보내기
행동은 외부 요청이나 받은 메시지에 대한 응답으로 행동하고 응답하는 활동입니다.
정부 캡슐화
마시는 대상의 양을 줄이는 것은 마시는 대상 그 자체일 것! 마시는 양이 줄어드나요? 메시지를 받은 음료가 결정합니다. 앨리스는 음주량이 줄어들 것이라고만 생각합니다. 그냥 요청을 보내오전.
객체는 캡슐에 상태를 숨기고 외부 세계에 공개하지 않습니다.. 이것은 캡슐화입니다. 마지막으로 개체 자율성을 높이고 협업을 쉽고 유연하게 만듭니다.
식별자
개체 란 무엇입니까? 인간의 인지 능력으로 식별할 수 있는 경계를 가진 모든 대상을 의미합니다. 식별 가능한 객체를 서로 구별할 수 있는 특정 속성이 객체에 있음을 의미합니다.
개체는 시간이 지남에 따라 변경되는 상태를 포함하고 동작을 통해 변경됩니다. -> 개체는 변경 가능합니다.
두 개체가 같은지 확인하려면 상태 변경과 독립적인 별도의 식별자를 사용해야 합니다.
물체의 중요한 속성
하나. 객체는 상태가 있으며 상태를 변경할 수 있습니다.하다.
2. 객체의 상태 변경은 개체의 동작입니다.오전.
– 행동의 결과는 상태에 따라 달라지며 상태를 통해 설명할 수 있습니다.
– 동작 순서는 실행 결과에 영향을 미칩니다.
3. 모든 상태에서 개체를 명확하게 식별할 수 있습니다.
기계로서의 물체
사용자 개체는 명령 단추와 쿼리 단추로 구성된 개체 제공 인터페이스를 통해서만 액세스할 수 있습니다.가능하다 즉, 캡슐화가 강조됩니다.
행동이 상태를 결정합니다
객체 지향을 처음 접하는 사람들이 빠지기 쉬운 함정은 다음과 같습니다. 상태 측면에서 개체 보기오전. 상태를 먼저 결정하고 조치를 나중에 결정하는 것은 설계에 해롭습니다.
1. 캡슐화가 손상되었습니다.
상태는 개체에 깔끔하게 캡슐화되지 않으며 공용 인터페이스에 노출될 가능성이 높습니다.
2. 객체를 협력자가 아닌 고립된 섬으로 만드십시오.
개체는 응용 프로그램 컨텍스트에서 다른 개체와 함께 작동해야 합니다. 다시 말해서 State는 초기에 공동 작업의 맥락에서 멀리 떨어진 개체 디자인을 고려합니다.두고
3. 객체의 재사용 가능성이 감소합니다.
상태에 초점을 맞춘 개체 재사용성을 방해하는 어려운 협업하다.
협업에서 개체의 작업은 궁극적으로 엔터티가 협업에 참여하는 동안 수행해야 하는 책임을 나타냅니다. 즉, 어떤 책임이 필요한지 결정하는 고착은 전체입니다.
디자인을 이끌어야 한다. 지금부터 RDD(책임 중심 설계)는 자세히 살펴보기 위해 공동 작업의 맥락에서 개체의 동작을 살펴봅니다.에 도움
은유와 사물
객체 지향은 현실 세계의 모방이 아닙니다!
현실 세계의 단순한 모방이 아니라, 소프트웨어의 객체와 긴장된 세계의 상품은 상당히 다릅니다. 소프트웨어 제품은 실제 제품이 할 수 없는 일을 할 수 있습니다. 속성이 완전히 다르기 때문에 현실 세계의 모방이나 추상화라고 말하는 것은 잘못입니다.
의인화
현실 세계에서 수동적인 존재 소프트웨어 개체로 구현될 때 능동적 변경. 예) 차가 저절로 출발하고 커피의 양이 저절로 줄어듭니다. 이렇게 하면 소프트웨어 내의 개체가 더 많은 작업을 수행할 수 있습니다. 의인화그것은 말한다.
은유
현실 세계와 객체 지향 세계의 관계는 모방이나 추상이 아닌 은유입니다. 유사점이 있기 때문입니다.
다만 현실세계와 다르게 이름을 정한 것이 아니라 현실세계에서 사용하는 이름을 사용하여 표현의 차이를 줄이고 이해하기 쉽고 유지보수가 용이하도록 하였다.
원더랜드 만들기
실제 사물을 기반으로 한 은유를 사용하여 이상한 나라의 사물을 묘사하세요! 생성한 개체의 속성을 기억할 수 있는 경우 실제 이름으로 설명합니다. 그렇지 않다면 현실을 무시하십시오.
추가…

