인터페이스(3)
-
05. 책임과 메시지
각 객체는 책임이 명확하게 주어지는 경우에 행동함 객체지향 공동체를 구성하는 기본 단위는 자율적인 객체임 객체에게 할당되는 책임 수준는 자율적이어야 - 너무 추상적인 책임도 무조건 좋은 것은 아님 자율적 챔임의 특징은 객체가 어떻게(how) 해야 하는가가 아니라 무엇(what)을 해야하는가를 설명하는 것 # 메시지 : 무엇(What) 하나의 객체는 메시지를 전송함으로써 다른 객체에 접근 추가적인 정보가 필요한 경우 메시지의 인자를 통해 추가 정보 제공 # 메서드 : 어떻게(How) 메시지를 처리하기 위해 내부적으로 선택하는 방법 # 다형성 서로 다른 유형의 객체가 동일한 메시지에 대해 서로 다르게 반응하는 것 다형성은 메시지 송신자의 관점에서 동일한 역할을 수행하는 다양한 타입의 객체와 협력할 수 있게 ..
2023.05.30 -
4장 : 클래스와 인터페이스
아이템 15. 클래스와 멤버의 접근 권한을 최소화하라 - 클래스 내부 데이터 및 구현 정보를 외부 컴포넌트로부터 잘 숨겨야 : 캡슐화 - 모든 클래스이 맴버와 접근성을 가능한 좀혀야 - public일 필요가 없는 클래스의 접근 수준을 최대한 낮춰야 - 리스코프 치환 원칙 : 상위 클래스의 인스턴스는 하위 클래스의 인스턴스로 대체해 사용할 수 있어야 - 즉, 상위 클래스의 메서드를 정의할 때는 그 접근 수준을 상위 클래스에서보다 좁게 설정할 수 없다 - public 클래스의 인스턴스 필드는 되도록 public이 아니어야 - public을 가변 필드로 갖는 클래스는 일반적으로 스레드에 안전하지 않음 - 정적 필드도 마찬가지이나, 상수라면 public static final 필드로 공개해도 좋음 - 길이가 0..
2023.04.06 -
IOC의 필요성 - 3. 클래스의 분리 및 인터페이스 도입, 관계설정 책임
클래스의 분리 처음에는 독립된 메서드를 만들어서 분리했고, 그 다음에는 상하위 클래스의 상속을 통해 분리했다. 이번에는 아예 상속관계도 아닌 완전히 독립적인 클래스로 만들어보겠다. 그림에 나와있는 것 처럼 SimpleConnectionMaker라는 새로운 클래스를 만들고 DB 생성 기능을 그 안에 넣는다 . 그리고 UserDao에서 SimpleConnectionMaker클래스의 오브젝트를 만들어두고, 이를 각 메서드에서 사용하면 된다. package springbook.user.dao; import springbook.user.domain.User; import springbook.util.SimpleConnectionMaker; import java.sql.*; public class UserDao {..
2022.01.09