Old Posts/OOP

Old Posts/OOP

03. 리스코프 치환 원칙(Liskov Substitution Principle)

README 리스코프 치환 원칙 (Liskov Substitution Principle) 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다. 이 원칙은 상속하지 말아야할 때를 생각해볼수있다. Rectangle - Square problem 우리회사 시스템에 Rectangle.class가 필요했다고 예를 들자. -> 코드짰다 // Rectangle.class public class Rectangle { private int width; private int height; public void setWidth(int width){ this.width = width; } public void setHeight(int height) { this.height..

Old Posts/OOP

02. 개방-폐쇄 원칙 (Open-closed principle)

README 개방-폐쇄 원칙 (Open-closed principle) 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 기능을 변경하거나 확장할 수 있으면서 (개방)그 기능을 사용하는 코드는 수정하지 않는다. (폐쇄)-> 추상화와 매우 관련깊은 원칙인듯. 자쿰 몸통 / 팔몸통 : Main팔 : 기능 팔에는 개방(Open)몸통은 폐쇄(Closed) 기능 8개 추가 기능 추가시 몸통소스 건드리지말고 팔을 붙였다 뗏다하자~~!! 기능을 몸통에 다넣어버리면 서로 엉키고 엉켜서 한 기능이 다른기능에 의존적이게 짤지도 모릅니다.나중에 어떤 기능을 제거 했을 때 딸려오는 에러(?) 들이 있을지도 몰라요. 최소한 그런 불안감을 가지고 갑니다.코드 가독성..

Old Posts/OOP

01. 단일 책임 원칙 (Single Responsibility Principle)

README 단일 책임 원칙 (Single Responsibility Principle) 객체는 단 한개의 책임만을 가져야 한다. Mission. 한수 Procedure-Oriendted Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main { public static void main(String[] args) throws IOException { //입력 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); final int N = Integer.parseInt(br.readLine(..

Old Posts/OOP

00. 알고리즘 문제로 OOP 이해하기.md

README 자바로 문제 풀면서 OOP 정복 가즈아! 안녕하세요. 컴퓨터공학과 학생입니다. 저는 2018년 1월부터 Java로 백준 알고리즘 문제를 풀어왔는데 절차지향적인 사고방식으로 코드를 짜왔습니다. 알고리즘 문제를 풀다보면 절차지향으로 짜도 별 문제가 없었죠 ? (오히려 더 빠릅니다.) 허나, 몇 달이 지나서 문제의 Output이 바뀌어 내 코드를 수정해야 한다면 어떨까요 ? 객체지향프로그래밍(OOP)에 대해 공부하던 중에 어떻게하면 몸소 느낄 수 있을까 생각하다가 이왕 알고리즘 문제 푸는거 객체지향적인 코드로 짜보자 하는 생각이 들었습니다. 어떻게 하면 객체지향스럽게 적용할 지 고민하며 제 나름대로 코드를 짜보고 기록하여 올리는 공간입니다. 저와 같이 알고리즘 문제를 객체지향적으로 구현 하고 싶은..

bactoria
'Old Posts/OOP' 카테고리의 글 목록