오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Paradigm/OOP 6

추상클래스와 인터페이스 차이

매번 사용하면서도 모르는 추상클래스와 인터페이스의 차이에 대해 설명하려고 한다. 구글에 검색해봐도 사실 어려운 이야기만 잔뜩 있어서 이게 뭐지 라는 생각만 든다. 나는 이 둘의 차이를 용도의 차이 측면에서 보려고 한다. 결론부터 말하면 추상클래스는 확장해서 사용하기 위함이고 인터페이스는 설계를 위함이다. 아직 무슨 말인지 감이 오지 않을 것이다. 먼저 추상 클래스의 예시를 보자! 1. 추상 클래스 예를 들어 Company 라는 추상 클래스가 있고 이 클래스는 아래와 같다. 추상클래스는 자식 클래스들의 공통된 구현을 추상 클래스 내에 정의된 상수나 구현을 이용해 중복을 없애고 추상 메서드를 이용해 자식들의 구현을 강제한다. abstract class Company { private name: string;..

Paradigm/OOP 2022.08.21

클래스와 객체

클래스 : 공통적인 상태와 행동을 공유하는 객체들을 추상화한것 클래스를 구현하거나 다른 개발자에 의해 개발된 클래스를 사용할 떄 가장 중요한 것은 클래스의 경계를 구분 짓는 일 객체 객체는 상태와 행동을 갖는다. 접근 제어 매커니즘: 접근 수정자 캡슐화와 접근제어는 객체를 두부분으로 나눈다. 퍼블릭 인터페이스 : 외부에서 접근 가능한 부분 구현 : 오직 내부에서 접근 가능한 부분

Paradigm/OOP 2021.09.29

의존성

어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이의 의존선이 존재 의존성은 구현 시점과 실행 시점에 따라 다른 의미를 갖는다. 실행 시점 : 의존하는 객체가 정상적으로 동작하기 위해서는 실해 시에 의존 대상 객체가 반드시 존재 구현 시점 : 의존 대상 객체가 변경 때 의존하는 객체도 변경 의존성 : 변경에 의한 영향의 전파 가능성 의존성 전이(transitive dependency) A 객체가 B 객체에 의존하면 A객체는 B객체가 의존하는 다른 객체에 대해서 의존적이다. 의존성의 종류 직접 의존성: 한 요소가 다른 요소에 직접 의존하는 경우 간접 의존성: 한 다리 건너서 의존하는 경우 의존성 전이에 의해 영향이 전파 되는 경우 런타임 의존성: 애플리케이션이 실행되는 시점 컴파일 타임 의..

Paradigm/OOP 2021.09.28

역할, 책임, 협력, 메세지

객체지향은 객체간의 협력을 통해 시스템을 구성하는 것 객체간의 협력은 메세지를 통해 이루어지며 메세지의 맥락에서 특정한 역할을 한다. 이 역할을 책임이라고 한다. 객체는 자신을 스스로 책임진다. 자신을 스스로 책임진다 = 객체를 캡슐화 한다, 자율성을 높음 객체와 객체가 상호 작용할 수 있는 방법은 오직 메세지 수신된 메세지를 처리하기 위한 방법이 메서드

Paradigm/OOP 2021.09.28

추상화 매커니즘

추상화 매커니즘에는 프로시저 추상화와 데이터 추상화가 있다. 이 두 추상화 매커니즘은 시스템을 분해하는 방법이며 프로시저 추상화 중심으로 시스템을 분해한다면 기능분해(또는 알고리즘 분해)의 길로 가는 것이다. 데이터 추상화의 경우 데이터를 중심으로 타입을 추상화 하는 경우가 있고 데이터를 중심으로 프로시저를 추상화 하는 방법이 있다. 전자를 추상데이터 타입 후자를 객체 지향이라고 한다. 타입은 변수에 저장할 수 있는 내용물의 종류와 변수에 적용될 수 있는 연산의 가짓수를 의미한다. 리스코프는 "Programming with Abstract Data Types"에서 프로시저 추상화를 보완하기 위해 데이터 추상화 개념을 제안했다. 추상 데이터 타입을 구현하기 위해서 다음과 같은 특성을 프로그래밍 언어에서 지..

Paradigm/OOP 2021.09.28