개요OOP 와 SOLID 원칙은 밀접한 관계캡상추다 4대 특성을 이해하면 SOLID 가 자연스럽게 적용됨.SOC (Seperation Of Concerns)관심사의 분리SOLID 원칙과 밀접한 관계같은 관심사는 하나의 객체나 친한 객체로 게더링다른 관심사는 분리SRP , ISP , COP 같은 SOLID 가 자연스럽게 적용SOLIDSRP (단일 책임 원칙) : 하나의 클래스는 하나의 책임OCP ( 개방 폐쇄 원칙) : 코드는 확장에 열려있고, 수정 닫혀있음LSP ( 리스코프 치환 원칙) : 서브 클래스는 슈퍼 클래스로 대체가 가능해야함ISP ( 인터페이스 분리 원칙) : 클라이언트는 자신이 사용하지 않는 메서드에 의존하면 XDIP ( 의존 역전 원칙 ) : 상위 모듈은 하위 모듈에 의존 XSOLID 장점..
객체 지향의 4대 특성과 도구의 사용개요객체 지향의 4대 특성캡슐화상속다형성추상화이러한 특성은 프로그래밍에서 사용하는 '도구'와 유사함그 사용법을 잘 알아야만 효과적인 프로그래밍이 가능합니다.비유객체 지향의 4대 특성을 요리의 불, 물, 칼 등의 주방 도구에 비유할 수 있다.도구를 올바르게 사용하지 않으면, 예를 들어 칼 대신 물의 수압을 이용해 과일을 자르려고 한다면, 그 효율은 매우 떨어질 것이다.따라서 도구를 올바르게 사용해야 함SOLID 원칙의 등장 및 필요성개요SOLID 원칙은 객체 지향 프로그래밍에서 좋은 설계를 위한 기본 원칙 5가지를 말한다.SRP, OCP, LSP, ISP, DIP의 머리글자를 따서 ⇒ SOLID5가지 원칙SRP(Single Responsibility Principle):..
import java.io.BufferedReader; import java.io.InputStreamReader; import java.text.MessageFormat; import java.util.Arrays; import java.util.Objects; /** * packageName : org.example.fourSquares * fileName : Main * author : ipeac * date : 2023-09-06 * description : * =========================================================== * DATE AUTHOR NOTE * ----------------------------------------------------..
단일 책임 원칙 (Single Responsibility Principle)1. 정의하나의 클래스는 하나의 책임만 가져야 한다는 것이 핵심2. 속성이 단일 책임 원칙을 지키지 못하는 경우: '사람' 클래스 예시public class Main{ public static void main(String[] args) { 사람 로미오 = new 사람(); 사람 줄리엣 = new 사람(); 로미오.군번 = "129301203012"; } public static class 사람 { String 군번; } }2.1 문제점사람 클래스에서는 군번이라는 속성이 모든 사람, 즉 남자와 여자 모두에게 적용됨하지만 이 경우 남자와 여자의 책임이 명확하게 구분되어 있지 않기 때문에 문제가 생깁니다.2.2 해결 방안남자와 여자 ..
정의소프트웨어 엔티티는 확장에 열려있어야하고변경에 대해서는 닫혀 있어야 한다.새로운 기능을 추가하거나 코드를 수정하는 경우기존 코드에 최소한의 변경을 주는 것을 목표로 해야한다.예시마티즈, 쏘나타라는 두 종류의 자동차 존재마티즈수동 기어수동 창문쏘나타자동 기어자동 창문OOP 세계에서는 자동차 종류마다 기능을 변경하지 않고도 활용가능// 마티즈를 운전할 때 driver.operateGearManual(); driver.openWindowManual(); // 쏘나타를 운전할 때 driver.operateGearAuto(); driver.openWindowAuto();가 아니라// 어떤 차를 운전하든 간에 driver.operateGear(); driver.openWindow();가 되어야 확장에 유리함.원..
정의this 는 자바와 같은 객체지향 프로그래밍 언어에서 사용되는 키워드임객체가 자기 자신을 참조하는 경우 사용일상생활에서 나 라고 말하는 것과 유사함.코드예제package This; class 펭귄 { int var = 10; void test() { int var = 20; System.out.println(var); System.out.println(this.var); } } public class Driver { public static void main(String[] args) { 펭귄 뽀로로 = new 펭귄(); 뽀로로.test(); } }System.out.println(var); 의 경우 var는 지역변수 var 의 값이 출력됨System.out.println(this.var);의 경우 ..