디자인패턴
-
[Spring/디자인패턴] 어댑터 패턴Framework/Spring 2021. 7. 18. 22:07
어댑터 패턴 어댑터는 실생활에서 100v를 220v로 변경해주거나, 그 반대로 해주는 흔히 돼지코라고 불리는 변환기를 예로 들 수 있다. 호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용할 수 있도록 한다. 어댑터 패턴 예시 public interface Electronic110V { void powerOn(); } public interface Electronic220V { void connect(); } public class HairDryer implements Electronic110V{ @Override public void powerOn() { System.out.println("헤어드라이기 110v on"); } } 헤어드라이어는 110v를 기반으로 동작한다. public class ..
-
[JAVA] 인터페이스(interface)Language/Java 2021. 6. 7. 16:03
인터페이스(interface) 모든 메서드가 추상 메서드로 선언된다. => public abstract 모든 변수가 상수로 선언된다. => public static final interface 인터페이스 이름{ public static final float pi = 3.14f; public void makeSomething( ); } 디폴트 메서드와 정적 메서드 기능의 제공으로 일부 구현 코드가 있다. 인터페이스 구현과 형 변환 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있다. => Calc calc = new CompleteCalc( ) : Calc는 인터페이스 CompleteCalc는 구현된 클래스 상속에서의 형 변환과 동일한 의미이다. 클래스 상속과 달리 구현 코드..
-
[JAVA/디자인패턴] 템플릿 메서드(Template Method)Language/Java 2021. 6. 6. 19:10
템플릿 메서드(template method) 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)을 정의하는 메서드 final로 선언하여 하위 클래스에서 재정의 할 수 없도록 한다. 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의하고, 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 한다. 프레임워크(framework)에서 많이 사용되는 설계 패턴 템플릿 메서드 예시 Car.java AICar.java ManualCar.java CarTest.java 자동차의 시동을 켭니다. 자율 주행을 합니다. 자동차가 스스로 방향을 바꿉니다. 자동차가 장애물 앞에서 스스로 멈춥니다. 자동차의 시동을 끕니다. =========..
-
[JAVA/디자인패턴] 싱글톤 패턴(singleton pattern)Language/Java 2021. 6. 3. 18:44
싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있다. 싱글톤 패턴 구현 생성자는 private로 선언 private School( ) { } 클래스 내부에 유일한 private 인스턴스 생성 private static School instance = new School( ) 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공 public class School { private static School instance = new School(); //클래스 내부의 단 하나의 인스턴스 생성 private School() { } public static School ..