본문 바로가기

객체지향의 사실과 오해3

객체지향의 사실과 오해 3장 정리 SRP(Single Responsiblity Principle) 단일 책임 원칙 클래스는 단 한 개의 책임을 가져야 한다. 단일 책임을 정하는 기준: 한 객체의 변경 이유는 단 한가지이어야 한다. 참고링크: 클린코드 10장 클래스 클린코드 내용 캡쳐 => 충분히 작지 않다. => 변경 이유는 단 한가지. SRP를 만족하는 클래스다. LSP(Liscov Substitution Principle) 리스코프 치환 법칙 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다. 위반한 사례 직사각형 vs 정사각형 UISwitch는 size를 바꿔도 사이즈가 바뀌지 않는다 -> 리스코프 치환 법칙 위반! UISwitch는 아래처럼 코드를 작성해야 사이즈가 바뀝니다... 2022. 5. 17.
객체지향의 사실과 오해 2장 정리 레베카 워프스브록 - 객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캡슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다. 객체, 그리고 소프트웨어 나라 객체의 특성 상태(state) 행동(behavior) 식별자(identity) 객체와 객체 사이의 의미 있는 연결을 링크(link) 라고 한다. 객체와 객체 사이에는 링크가 존재해야만 요청을 보내고 받을 수 있다. 객체가 취하는 행동은 객체 자신의 상태를 변경시킨다. 객체의 행동에 의해 객체의 상태가 변경된다는 것은 행동이 부수 효과(side effect)를 초래한다는 것을 의미한다. 여기서의 부수효과는 좋은 것도 나쁜것도 아닌 당연한 원리. 메소드를 호출함으로써 .. 2022. 5. 8.
객체지향의 사실과 오해 1장 정리 협력하는 객체들의 공동체 객체지향(Object Oriented Programming) 객체지향의 목표는 실세계를 모방하는 것이 아니다. 오히려 새로운 세계를 창조하는 것이다. 소프트웨어 개발자의 역할은 단순히 실세계를 소프트웨어 안으로 옮겨 담는 것이 아니라 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것이다. 객체의 특징: 캡슐화(encapsulation), 자율성(autonomous), 메시지(message), 협력(collaboration), 연결완전성(seamlessness) 메시지, 오퍼레이션, 메소드 해당 객체가 다른 객체에게 메시지를 보낸다고 표현을 하지, 절대 해당 객체가 다른 객체의 함수를 호출한다고 부르지 않는다. 함수가 아닌 operation이라고 부른다. 왜냐하면 메시지를 보.. 2022. 5. 8.