- 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체" 들의 모임으로 파악하고자 하는 것이다. 단 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.(협력)
- 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.
다형성의 실세계 비유
코드 (상황 가정 : 회원 서비스 애플리케이션 개발 중 데이터 저장소를 확정하지 못한 상태)
public class MemberService{
private MemoryMemberRepository memberRepository = new MemoryMemberRepository();
public void join(Member member){
memberRepository.save(member);
}
}
public class MemberService{
private MemberRepository memberRepository = new MemoryMemberRepository();
public void join(Member member){
memberRepository.save(member);
}
}
하나의 클래스는 하나의 책임만 가져야 한다.
책임: 중요한 기준은 변경, 변경이 있을 때 파급효가가 적으면 SRP를 잘 따르는 것
소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
예)
public class MemberService{
private MemberRepository memberRepository = new MemoryMemberRepository();
}
public class MemberService{
//private MemberRepository memberRepository = new MemoryMemberRepository();
private MemberRepository memberRepository = new JdbcMemberRepository();
}
public class MemberService{
private MemberRepository memberRepository = new MemoryMemberRepository();
}