디자인 패턴/OOP

디자인 패턴/OOP

OOP

소프트웨어 모듈(함수, 클래스)이 가져야 할 3가지 기능은 무엇일까? 필요한 기능이 오류없이 제대로 동작하는 것 변경에 용이한 코드 누가 읽어도 이해하기 쉬운 코드(동작이 우리의 상식 또는 예측에서 크게 벗어나지 않는 코드) 기능을 모듈화하는 이유 모듈의 재사용을 위해서 객체지향 패러다임: 협력, 책임, 역할 도메인: 음료 주문 시스템 협력이란? 협력은 객체 간의 상호작용을 통해서 이뤄진다. 객체 간의 상호작용은 메시지를 통해서만 가능하다. 작은 단위로 쪼개진 기능 목록 주문 받기 주문 결제 금액 계산 커피 제조 커피 전달 책임이란? 협력에 참여하기 위해서 객체가 맡고있는 전체 기능 정의서 작성중..

디자인 패턴/OOP

OOP의 4가지 특징

❓OOP란 우리가 보고 인지하는 실제 세계를 흉내내어 가장 기본적인 단위인 객체들을 만들고, 그것들 간의 유기적인 상호 작용을 규정하여 프로그램을 발전시키는 프로그래밍 방법론 1. 추상화 객체의 공통적인 속성(변수)와 기능(메서드)를 추출하여 정의하는 것 자바에서 추상화를 구현할 수 있는 문법 요소로는 추상 클래스와 인터페이스가 있다. 객체 지향적 설계에 있어서 인터페이스는 어떤 객체의 역할만을 정의하여 객체들간의 관계를 보다 유연하게 연결하는 역할을 담당한다. 인터페이스에는 추상 메서드나 상수를 통해서 어떤 객체가 수행해야 하는 핵심적인 역할만을 규정해두고, 실제적인 구현은 해당 인터페이스를 구현하는 각각의 객체들에서 하도록 프로그램을 설계하는 것이다. 역할과 구현의 분리 객체 지향 프로그램에서는 ..

디자인 패턴/OOP

SOLID (좋은 객체 지향 설계의 5가지 원칙)

✏️ 개요 SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙을 말한다. 해당 용어의 개념 이론들은 oop의 4가지 특징(추상화, 상속, 다형성, 캡슐화) 등의 개념들을 재정립한 것이다. 또한 5가지 원칙들은 서로 개념적으로 연관되어 있다. SRP : 단일 책임 원칙 (single responsibility principle) OCP : 개방-폐쇄 원칙 (Open/closed principle) LSP : 리스코프 치환 원칙 (Liskov substitution principle) ISP : 인터페이스 분리 원칙 (Interface segregation principle) DIP : 의존관계 역전 원칙 (Dependency inversion priciple) ❓ 좋은 설계란 무..

디자인 패턴/OOP

인터페이스와 다형성(polymorphism) 그리고 추상클래스

✏️ 개요 인터페이스 사용하는 클래스가 사용되는 클래스의 종류와 상관없는 독립적인 클래스가 된다. 인터페이스의 메서드는 반드시 구현해야 하는 강제성을 갖는다. 추상클래스 인터페이스의 역할도 하면서 클래스의 기능도 가지고 있는 자바의 돌연변이 같은 클래스이다. 다형성 객체가 한 개 이상의 자료형의 타입을 갖게되는 특성을 의미한다. 부모 자식 상속 관계에 있으면 부모 타입으로 자식 클래스 타입을 받아 초기화할 수 있다. 자바에선 대표적으로 Overloading, Overriding, UpCasting, DownCasting, Interface, 추상메서드, 추상클래스 방법이 모두 다형성에 속한다. 🔎 자료형 다형성 다형성의 핵심은 '타입 묶음'이다. 공통적인 상속 클래스의 특징을 이용해 각 자료형의 타입을 ..

kimjingyu
'디자인 패턴/OOP' 카테고리의 글 목록