Java22 전략 패턴(Strategy Pattern) 전략 패턴 각 객체들이 할 수 있는 행위들을 각 전략클래스에 생성하고, 각 전략클래스는 하나의 추상적인 접근점 (인터페이스)를 상속받아 각각 자신의 행위들을 정의한다. 행위를 변경하고 싶을때마다 전략을 바꾸는 코드로 유연하게 개발할 수 있다. 예제 public interface Weapon { public void attack(); } public class knife implements Weapon { @Overide public void attack() { System.out.println("검 공격"); } } public class Ax implements Weapon { @Overide public void attack() { System.out.println("도끼 공격"); } } publi.. 2020. 8. 23. 상속 괜찮은가? (컴포지션) 부모클래스 class Person{ void eat(String food){ System.out.println("먹다"); } void eatAll(String[] foods){ for (String a: foods) { eat(a); } } } 상속 받은 자식 클래스 class Grandfather extends Person { private int count = 0; @Override void eat(String food) { count++; super.eat(food); } @Override void eatAll(String[] foods) { count = count + foods.length; super.eatAll(foods); } public int getCount() { return cou.. 2020. 8. 10. 제네릭의 모든것 자바5부터 제네릭 타입이 새로 추가되었다. 제네릭을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었다. 제네릭을 정확하게 알고있고 클래스를 설계한다면 클래스는 더욱 이쁘고 , 깔끔해 질 수있다고 확신한다!! 대표적인 장점 2가지 컴파일 시 강한 타입 체크를 할 수 있다. 타입 변환(casting)을 제거한다. 제네릭 제한된 타입 파라미터 class Fruit { public String toString(){ return "Fruit"; } } class Apple extends Fruit{ public String toString(){ return "Apple"; } } class Banana extends Fruit{ public String toString(){.. 2020. 8. 8. 객체직렬화 ? 객체직렬화란 무엇인가? 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환 하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)를 이야기합니다. 즉, 보내는쪽은 객체를 잘게잘게 쪼개서 보내고 받는쪽은 쪼개진것을 합쳐서 객체를 만든다 java.io.serialization 인터페이스를 상속받은 객체는 직렬화 할 수 있는 기본 조건을 충족! 예시에서 InfoDTO라는 class에 인터페이스를 구현했다! 자바가상기계 (JVM)은 직렬화와 역직렬화를 하는 시점의 클래스에 대한 버전 번호를 부여합니다. 만약 그 시점에 클래스의 정의가 바뀌어 있다면 새로운 버전 번호를 할당합니다. 그래서 직렬화할 때의 버전 .. 2020. 2. 23. 이전 1 2 3 4 5 6 다음