반응형 OOP 💻 개발IT/Design Patterns 2022. 2. 7. 2. 객체지향 개념과 설계 원칙 - 객체지향 패러다임 Abstract Data Type(ADT) 데이터, 관련된 operation들을 하나의 문법적인 unit에 캡슐화 장점 하나의 문법적인 요소라서 관리, 수정에 용이하고 분할 컴파일이 가능함 외부에서 바로 접근이 불가능하여 내부 변경되어도 외부에 영향을 미치지 않음 Object-Oriented Paradigm Class = ADT + Inheritance(재사용) + Polymorphism(유연성) Inheritance class Y가 class X를 상속한다면? (Y is a X) Y는 X의 모든 메소드와 데이터를 상속받음 Y의 모든 인스턴스는 X의 인스턴스 → X의 인스턴스를 요청하는 곳에서 Y 인스턴스 사용 가능 Polymorphism 한 operation이 서로 다른 방법으로 수행될 수 있음 ope.. 💻 개발IT/OOP 2022. 2. 4. 3. Object-Oriented Development (OOD) Software Development 정의 Software로 문제를 해결하는 것 Procedural Programming Procedure들로 구성된 프로그램 Procedure/Function : 변수 값을 변경하는 statement들 데이터 구조, 알고리즘, 과정의 시퀀스들에 집중해야함 SASD 구조적 분석 설계 방법론 (Structured Analysis and Structured Design) Top-Down Divide and Conquer SA : SW 만들 때 입력과 출력을 다 찾고 레벨을 낮춰서 또 찾고 찾고... (하단 사진에서 DFD level을 낮춤) SD : 실제 구현 DFD(data flow diagram) 사용 Object-Oriented Programming object들로 구성.. 💻 개발IT/OOP 2022. 2. 3. 2. Object-Oriented Principles 5가지 원리 Abstraction Encapsulation Inheritance Polymorphism Composition Abstraction (추상화) := 모델링 중요하지 않은 것은 무시하고 중요한 것들만 포함시키는 과정 (Emphasizes relevant characteristics, but suppresses other characteristics) Encapsulation (캡슐화) 내부적으로 어떻게 동작하는지 몰라도 쉽게 사용할 수 있도록 만드는 것 := information hiding 객체 안에 있는 데이터를 외부로부터 숨김 Client는 Deposit() 수행하면서 내부에 어떤 정보가 변경되는지 모름 Example : 자동차(object)에 많은 엔진, SW가 포함되어있지만 운전을 .. 💻 개발IT/OOP 2022. 2. 2. 1. Object-Oriented Object(=Entity) 정의 informal : SW뿐만 아니라 일반적인 모든 사물 (physical(ex. truck...), conceptual(ex. chemical process...) or software(ex. linked list...), informally) formal : 유니크한 ID가 있고 다른 것과 구별되는 boundary가 있고 내부에 attribute와 operations을(꼭 둘 다 가지고 있어야함) 가지고 있는 개체 (An object is an entity with a well-defined boundary and identity that encapsulates state and behavior) state : object의 상태 (represented by attri.. 이전 1 다음 반응형