객체지향 2

SOLID 원칙 - 개방 폐쇄 원칙

객체지향 프로그래밍을 설계할 때 아래와 같이 5가지 원칙을 지켜야한다라는 말을 들어본 적 있을 것이다.단일 책임 원칙(SRP)개방 폐쇄 원칙(OCP)리스코프 치환 원칙(LSP)인터페이스 분리 원칙(ISP)의존 역전 원칙(DIP)CS를 공부하면서 배웠을 SOLID 원칙인데 솔직히 이론적인 설명만 읽어서는 온전히 이해가 되지 않는 원칙들이 몇 개 있었다. 이번에 김영한님의 spring 강의를 들으면서 개방 폐쇄 원칙을 잘 지킨 사례를 발견하여 블로그에 기록해두려 한다.개방 폐쇄 원칙(OCP)이론적인 설명은 다음과 같다.코드의 수정에는 폐쇄되어 있지만 확장에는 개방되어 있어야 한다. 즉, 유지 보수할 때 코드의 수정은 최대한 지양하면서 확장은 용이하게 할 수 있도록 설계해야 한다. 언뜻 이해되는 듯 하면서도 ..

객체지향 프로그래밍

객체지향 프로그래밍이란?객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식 영어로 Object-Oriented Programming으로 작성하며, 줄여서 OOP로 표현한다.장점모듈화하기 좋다유지 보수에 용이하다단점설계에 많은 시간이 필요하다처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느리다예시 코드앞서 프로그래밍 패러다임 포스트에서 작성한 배열의 최댓값 찾기 코드를 객체지향 방식으로 작성하면 다음과 같다.const ret = [1, 2, 3, 4, 5, 11, 12]class List { constructor(list) { this.list = list this.mx = list.reduce((max, num) =>..