분류 전체보기77 Strategy Pattern 전략 패턴 (Strategy Pattern) 템플릿 메서드 패턴은 상속을 통해 문제를 해결했다. 전략패턴은 Context 라는 곳에 변하지 않는 부분을 두고, 변하는 부분을 Strategy 라는 인터페이스에서 구현하도록 하여 상속이 아닌 위임을 통해 문제를 해결한다. 전략 패턴의 의도 알고리즘 제품군을 정의하고 각각을 캡슐화하여 상호 교환 가능하게 만들자. 전략을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. Context @Slf4j public class Context { private final Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void e.. 2022. 12. 2. Template Method Pattern 템플릿 메서드 패턴 템플릿 메서드 패턴의 의도 작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다. 로깅 부분은 변하지 않지만, 비즈니스 로직은 변경. 이 둘을 분리해서 모듈화 해야 한다. @Slf4j public abstract class AbstractTemplate { public void execute() { long startTime = System.currentTimeMillis(); // Logic Start call(); // 상속 // Logic End long endTime = System.currentTimeMillis(); long result.. 2022. 12. 2. Aspect Oriented Programing (AOP) AOP란? 어떤 메소드의 실행시간을 측정하려는 요구사항이 있다. 처음에는 하나의 메소드의 시간만 측정하면 됐지만, 점점 많은 수의 메소드를 관리해야 했다. 이렇게 되면 코드의 중복이 많아지고 관리가 힘들어진다. 또한 비즈니스 관심사에 필요하지 않은 실행시간 측정이 비즈니스 코드에 섞이게 된다. 이때 필요한게 AOP 이다. 관점 지향 프로그래밍 AOP AOP란 프로그램 구조를 다른 방식으로 생각하게 함으로써 OOP를 보완한다. OOP에서 모듈화의 핵심 단위는 클래스이지만 AOP에서 모듈화의 핵심 단위는 관점(aspect)이다. 관점은 다양한 타입과 객체에 걸친 트랜잭션 관리같은 관심(concern)을 모듈화할 수 있게 한다. crosscutting corncerns: 횡단 관심사 core concerns:.. 2022. 4. 16. [백준] 구현 - 14503: 로봇 청소기 (Java) https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 구글에 쳐보니까 보통 재귀로 풀어서 반복문으로 푼 내 방법으로 해결하는데 꽤 오래 걸렸다. 내일 우테코 코테인데 못풀고 갈까 걱정했지만 정답 맞추고 시험 볼 수 있어서 기분이 좋다.ㅎㅎ 시뮬레이션은 문제 잘 읽어서 상황만 잘 나누면 80% 해결한 것이라고 생각한다. 2021. 11. 6. 이전 1 ··· 5 6 7 8 9 10 11 ··· 20 다음