본문 바로가기
반응형

다형성3

Five Lines of Code - 4장. 타입 코드 처리하기 Five Lines of Code - 4장. 타입 코드 처리하기 if else 를 사용하지 말자 public play(User user) { if (user.getStatus == Status.RUN) { user.setStamina(user.getStamina - 1); } else if (user.getStatus == Status.WAIT) { user.setStamina(user.getStamina + 1); } } 위 코드에서 user status ‘ATTACK’ 이 추가되었다. public play(User user) { if (user.getStatus == Status.RUN) { user.setStamina(user.getStamina - 1); } else if (user.getStat.. 2023. 9. 22.
추상클래스와 인터페이스 추상클래스 / 인터페이스 차이 추상클래스 추상 메서드를 하나 이상 가지고 있는 클래스 인터페이스 추상 메서드의 집합. 하지만 자바 8부터 default 접근 제어자를 허용하면서 인터페이스도 구현이 가능해졌습니다. 왜 인터페이스에서 구현을 가능하게 했을까요? 자동차를 만들기 위해 Car 인터페이스를 다음과 같이 선언했습니다 그 후 이것을 구현한 아반떼 클래스를 만들었습니다 코드는 문제없이 잘 동작했고 시간이 흘러 Car 인터페이스를 상속하여 구현한 자동차 클래스가 100만개 였다고 가정해볼게요 그러다가 Car가 출발할 수 있도록 start() 추상 메서드를 만들어 달라는 요구사항이 들어왔습니다. 바로 만들어 줍시다 그후 인터페이스를 implements 받은 클래스들을 구현하려고 생각해보니.. 100만개의 .. 2019. 12. 9.
개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴 - PART 1 PART 1. 객체 지향 객체 지향 시스템을 상호작용하는 자율적인 객체들을 공동체로 보고 객체들을 이용해서 시스템을 분할하는 방식 자율적인 객체란? 상태와 행위를 가지고 자신의 일을 스스로 책임질 수 있는 객체 절차 지향 / 객체 지향 절차 지향 데이터 중심의 프로시저로 프로그래밍을 구성하는 기법 객체 지향 데이터와 관련된 프로시저를 객체라는 단위로 묶어 객체들이 모여 프로그래밍을 구성하는 기법 객체 지향의 핵심 기능을 제공하는 것 말 그대로 객체를 지향하는 것이지 클래스를 지향하는 것이 아님 객체 지향의 장점 한 곳의 구현 변경이 다른 곳에 변경을 시키지 않도록 해줌 캡슐화 추상화 오퍼레이션 / 시그니처 오퍼레이션 객체가 제공하는 기능 시그니쳐 오퍼레이션의 사용법 다음 3가지로 구성 기능 식별 이름 파.. 2019. 11. 26.