728x90 반응형 CS Study/디자인패턴84 22-04-17-프록시패턴-2부-패턴적용하기 01.프록시패턴 적용 01.1 코드 수정 없이 적용하기 GameServiceProxy 추가 public class GameServiceProxy extends GameService{ @Override public void startGame(){ long before = System.currentTimeMillis(); super.startGame(); System.out.println(System.currentTimeMillis()-before); } } before public class Client{ public static void main(String[] args){ GameService gameService = new GameService(); gameService.startGame(); } }.. 2022. 4. 17. 22-04-17-프록시패턴-1부-패턴소개 01.프록시패턴 스프링을 한번쯤 공부했던 사람이라면 들어본 패턴 중 하나 특정한 객체의 오퍼레이션들을 접근하기 전에 프록시 객체를 지나서 접근하는 패턴 프록시 대리, 대리인의 의미를 가진 클라이언트가 직접 객체를 쓰지 않고 대리인을 거쳐서 사용하는 것 그 클래스 직접안쓰고 프록시를 거쳐서 사용 요청자체를 프록시가 무조건 받음 좋은 이유 해당 객체에 대한 접근 제어, 권한이 있어야 접근할 수 있도록 그 객체가 생성하는 데 많은 리소르를 필요로하는 인스턴스라면 최초로 쓰일때 초기화를 지연할 수 도 있음 로깅, 캐싱을 적용할 수 있음 이를 통해 성능적 장점을 가져옴 02.코드로 보는 프록시 패턴 02.1 Client.java public class Client{ public static void main(St.. 2022. 4. 17. 22-04-12-플라이웨이트패턴-4부-자바와스프링에서찾아보는패턴 01.자바의 플라이웨이트 패턴 package me.whiteship.designpatterns._02_structural_patterns._11_flyweight._03_java; public class FlyweightInJava { public static void main(String[] args) { Integer i1 = Integer.valueOf(10); Integer i2 = Integer.valueOf(10); System.out.println(i1.equals(i2); //System.out.println(i1 == i2);// 이렇게 쓰는것은 좋지 않음 } } 값들을 캐싱하는 것을 알 수 있음 즉, 자주사용하는것에 대해서만 02.스프링의 플라이웨이트 패턴 찾기가 어려움 ㅜㅜ https.. 2022. 4. 12. 22-04-12-플라이웨이트패턴-3부-장점과단점 01.장점 애플리케이션에서 사용하는 메모리를 줄일 수 있음 이전에는 제 각각 인스턴스들이 가지고 있었음 이를 적용하면 해당값은 매번 GET을 하지만 동일한 인스턴스이기때문에 flyweightFactory에서 같은 키값을 가지고 있으면 같은 걸 씀 02.단점 오히려 적용하기전 소스가 더 간단하다. 플라이웨이트 지식이 없다면 코드 파악이 어려움 즉, 코드의 복잡도가 증가하게 됨 https://3dpit.github.io/posts/%ED%94%8C%EB%9D%BC%EC%9D%B4%EC%9B%A8%EC%9D%B4%ED%8A%B8%ED%8C%A8%ED%84%B4-3%EB%B6%80-%EC%9E%A5%EC%A0%90%EA%B3%BC%EB%8B%A8%EC%A0%90/ 22-04-12-플라이웨이트패턴-3부-장점과단점.. 2022. 4. 12. 이전 1 ··· 4 5 6 7 8 9 10 ··· 21 다음 728x90 반응형