728x90

대학교 4

[대학교멋사🦁/OOD] 5. 의존과 DI(의존 주입)

1. 의존하다 기능 구현을 위해 다른 구성 요소를 사용하는 것. ex) 객체 생성, 메소드 호출, 데이터 사용 등 의존은 변경이 전파될 가능성이 있음을 의미 내가 의존하는 대상이 변경되면 나도 바뀔 가능성이 존재 == 의존하는 대상이 변경되면 의존받는 대상도 바뀔 가능성이 존재 ex) 호출하는 메소드의 파라미터 변경 ex) 호출하는 메소드가 발생할 수 있는 exception 타입 추가 (예외 처리) 2. 순환 의존 A->B->C->A의 형태로 의존하는 관계. # 문제점 변경 연쇄 전파 가능성 존재. => 왠만하면 클래스, 패키지, 모듈 등의 모든 수준에서 순환의존이 없도록 구현하도록 하자. Q. 의존하는 대상이 많다면? A,B,C,D,E,F를 의존하는 X가 존재한다고 할때 X는 의존하는 애들이 바뀔 때 ..

[대학교멋사🦁/OOD] 4. 기능과 책임 분리

1. 기능 분해 하나의 기능은 여러가지의 하위 기능으로 분해할 수 있다. 기능을 분류하고 각 객체에게 기능 구현의 책임을 제공한다. 분리한 하위 기능을 통해서 전체 기능을 구현하게 됨 2. 문제 클래스나 메소드의 크기가 증가할 경우 절차지향에서 마주하였던 문제가 또 다시 발생 큰 클래스 : 많은 필드를 많은 메소드가 공유 큰 메소드 : 많은 변수를 많은 코드가 공요 여러 기능이 한 클래스 및 메소드에 섞에 있을 가능성이 존재한다. => 데이터를 공유하게 됨으로써 코드를 수정하기 어려움을 겪게 됨 그럼 어떻게 해야 할까? 책임에 따라 알맞게 코드를 분리할 필요가 있다. 3. 책임에 따른 클래스 분배 분리 방법 패턴적용 전형적인 역할 분리 ex) 웹 : 컨트롤러, 서비스, DAO / 복잡한 도메인 : 엔티티..

[대학교멋사🦁/OOD] 3. 상속 보다 조립

대개 상위 클래스의 기능을 재사용, 확장하는 방법으로 활용 # 단점 상위 클래스 변경의 어려움 존재 상위클래스의 변경이 모든 하위클래스에 영향을 미침 앞으로 어떤 하위클래스가 추가될 지 모르기에 영향력의 크기가 점점 증가 캡슐화가 약해짐 하위클래스는 상위클래스가 어느정도 어떠한 동작을 하는지를 알아야 하는 경우가 발생 => 상위클래스는 하위클래스에게 캡슐화의 의미가 약해지고이따지요 클래스의 불필요한 증가 새로 클래스가 생성될 때마다 또 다른 하위 크래스가 생성 어떤 클래스를 상속받아서 구현을 진행해야하는지 불명확한 상태가 발생하기도 함 상속 오용 상속받은 메소드의 오용이 발생 # 그럼 워떠케? 조립하자!! # 조립(Composition) 여러 객체를 묶어 더 복잡한 기능을 제공 보통 필드로 다른 객체를 ..

[대학교멋사🦁/JAVA] Assignment_2회차_1

Collection 을 사용하여 여러가지 간단한 문제를 구현해 보도록 합니다 뚜둔. 1. 다섯 명을 입력받고 이 씨 성인 사람을 출력하는 프로그램입니다 조건 : list을 활용하여 과제를 완성합니다. package week2.assignment_1; import java.util.*; public class assignment_1_1 { // 이씨 성을 가진 사람을 찾는 메소드 public static void findLees(List list){ for(String name : list){ if(name.contains("이")){ System.out.println(name); } } } public static void printProgramStart(){ System.out.println("이 씨 ..

728x90