※ 개인적인 개발 수업 정리글입니다. 꾸준히 정리할 예정이고 틀린 부분이 있다면 언제든지 댓글 환영입니다.
■ 인터페이스 디커플링
-나는 오라클DBMS-emp를 쓰는데, 회사에서는 MySQL DBMS-emp를 씀...
-프로그래밍끼리 디커플링 : 모듈사이를 인터페이스로 연결, 구현체를 분리
모듈사이의 연결고리(의존관계)를 인터페이스를 사용하여 두 모듈의 의존성을 감소하여,
개발 및 유지보수가 용이하게 처리방식
-객체들 간에 결속력이 강할 경우, 그 프로그램의 구성요소 중 하나를 수정하게 되면 그와 연관된 모든 구성요소도 새로 수정해야함.
그러나 인터페이스를 이용한 설계가 잘 된 경우에는 수정하고자 하는 요소만 수정하여 재배포.
09Day7 프로젝트
-나는 오라클DBMS-emp를 쓰는데, 회사에서는 MySQL DBMS-emp를 씀...
┌내가 쓰던 Oracle클래스와 회사가 쓰던 MySQL 클래스를 생성해줌┐
┌DBMain에서 Oracle클래스 쓰다가 SQL 들어오면 Oracle 들어오면 다시 다 써야함┐
∴ A클래스의 코드를 수정했는데, B클래스의 코드도 수정해야함.
=이런 걸 "커플링" 되었다고 하고, 서로 연관이 너무 깊게 되어있다고 하는 것.
=>그래서 우리는 최대한 의존하지 않도록 "디커플링" 해주기 위해 중간에 완충제를 마련.
┌완충제 클래스 DBService 생성┐
┌그러면 이제 DBMain┐
ㄴ아까처럼 Oracle클래스나 SQL클래스로 바로 객체생성한게 아니고,
DBService로 객체생성하고 DBService에 접근해서 호출하면,
좀 빙 둘러서 가지만, 전부 싹다 수정해야하는 불편함은 없는거임.
■ 중첩클래스
클래스 안에 또 다른 클래스가 정의 근데 거의 안 쓰임
-Outer클래스를 통해서만 Inner클래스에 접근가능
-Inner클래스 : Outer클래스의 멤버처럼 동작
-Inner클래스 : Outer클래스의 멤버변수,멤버함수
사용가능(private여도)
-Inner클래스 안에서 static변수 불가능
< Inner클래스 종류 4가지 >
★anonymous는 꼭 기억하기★
09Day8 프로젝트-Outer Inner 클래스
■ anonymous Inner 클래스
09Day8 프로젝트-클래스 Bird, Flyer,
■ 인터페이스이름 <정렬기준>
ㄴ < Person > 외에는 다른 것들이 접근 못하게 해주는것. Generic 때 배움.
책204~5쪽 예제 7-8 이해하기
09Day8 프로젝트- com.test - Ex07_8
1. 클래스 Person에 멤버변수랑 생성자랑, toString 함수 생성
2. 클래스 PersonComp에 implements상속받는데, 인터페이스 Comparator를
배열 방 2개를 가져와서 인자 기준으로 비교하고, 차순 정렬하게 함.
3. 클래스 Ex07_8 메인함수에는
클래스 Person 타입의 변수ps에, 새로운 객체[클래스 Person타입의 (인자들)]을, 저장함
...
..
.
클래스Person 타입의 변수ps 배열에 , p~p4 저장
Array.sort( 배열 변수ps를 , new PersonComp( ) ) ; 로 정렬하라? ( )안에 기준 넣음
foreach문으로 (클래스Person타입의 변수person에 : 배열변수ps) 의 "값들"을 자동순서대로 저장 {
sysout. 변수 person를 보여라
}
'Govern > Eclipse SE -상속,클래스,타입' 카테고리의 다른 글
07-26(월) 2.제네릭/컬렉션/ Iterator (0) | 2021.07.27 |
---|---|
07-26(월) 1.사용자예외클래스 throws/throw (0) | 2021.07.27 |
07-23(금) 2.클래스들,Array API, 예외처리조금 (0) | 2021.07.27 |
07-22(목) 다형성 instanceof 추상클래스 인터페이스 (0) | 2021.07.22 |
07-21(수) 상속 오버라이딩 (0) | 2021.07.21 |