study/design pattern
-
[DESIGN PATTERN] 템플릿 메서드 패턴study/design pattern 2020. 8. 30. 18:13
템플릿 메서드 패턴 ( Template Method Pattern ) 알고리즘의 일부 또는 전부를 하위 클래스에서 구현하거나 위임하는데 사용한다. 즉, 공통으로 사용하는 알고리즘은 부모 클래스에 정의하고 특정 부분에서 사용하는 알고리즘은 하위 클래스에서 수행하도록 설계하는 것이다. public abstract class HouseTemplate { public final void buildHouse(){ buildFoundation(); buildPillars(); buildWalls(); buildWindows(); System.out.println("House is built"); } private void buildWindows(){ System.out.println("Building Glass W..
-
[DESIGN PATTERN] Strategy 패턴study/design pattern 2020. 8. 30. 18:01
스트레티지 패턴 ( Strategy pattern ) 지정된 알고리즘의 세부 구현을 변경할 필요없이 쉽게 교환할 수 있는 디자인 패턴이다. 실행 중이라도 구현된 알고리즘을 교환할 수 있으므로 의존성 주입에 자주 사용된다. 아래는 Strategy 패턴을 통해 간단한 로거를 만드는 예제이다. public interface Logging { void write(String message); } public class ConsoleLogging implements Logging { @Override public void write(String message) { System.out.println(message); } } public class FileLogging implements Logging { priva..
-
[DESIGN PATTERN] 빌더 패턴study/design pattern 2020. 8. 30. 17:42
빌더 패턴 필드가 많은 객체를 생성할 경우 생성자를 이용하면 다루기도 어렵고 헷갈릴 수도 있다. @Getter @Setter public class Computer { private String HDD; private String RAM; private String graphicCard; private String CPU; private boolean isGraphicCardEnable; private boolean isBluetoothEnable; } 이 필드 중에는 객체로 생성할 때 꼭 포함되어야 하는 필드도 있고 그렇지 않은 필드도 있다. 꼭 포함되어야 하는 필드들은 생성자의 매개변수로 꼭 포함이 되어있어야 한다. 꼭 포함되어야 하는 필드들이 많아질수록 생성자는 그만큼 복잡해진다. 또 각 필드마다 ..