객체지향 2

[객체지향프로그래밍] 객체, 캡슐화

객체란 - 기능으로 정의된 클래스 - 기능은 메소드로 표현됨 - 단순히 변수만 있고 setter getter를 제공하는건 객체가 아니라 Data 캡슐화 - 데이터 + 관련기능 묶기 - 객체가 기능을 어떻게 구현했는지 외부에 감추는 것 - 구현에 사용된 데이터의 상세 내요을 외부에 감춤 - 정보 은닉 의미 포함 - 외부에 영향없이 객체 내부 구현 변경 가능 *캡슐화하지 않았을 경우 if(acc.getMembership() == REGULAR && acc.getExpDate().isAfter(now())) { ..정회원 기능제공 } 5년이상 사용자 일부기능 정회원 혜택 1개월 무상제공기능이 추가될시 if(acc.getMembership() == REGULAR && ( (acc.getServiceDate()...

개발 2022.04.28

[객체지향프로그래밍] 의존과 DI

의존 1. 기능 구현을 위해 다른 구성요소를 사용하는것 A.의존의 예 : 객체 생성, 메서드 호출, 데이터 사용 2. 의존은 변경이 전파될 가능성을 의미 A.의존하는 대상이 바뀌면 바뀔 가능성이 높아짐 - 예 : 호출하는 메서드의 파라미티가 변경 - 예 : 호출하는 메서드가 발생할 수 있는 익셉션 타입이 추가 순환 의존 1. 순환 의존 -> 변경 연쇄 전파 가능성 A.클래스, 패키지, 모듈 등 모든 수준에서 순환 의존이 없도록 해야한다. B.의존하는 대상이 많을수록 좋지 않음. 의존 대상 많을 때 1. 기능이 많은 경우 A.한 클래스에서 많은 기능을 제공하는 경우 기능별로 분리 고려 - 각클래스마다 의존이 줄어듬 - 한 기능을 수정할때 다른기능과 관련된 코드를 수정하는일이 발생하지 않음 - 개별 기능 테..

개발 2022.04.15