728x90 반응형 객체지향40 2021.12.08_브릿지패턴01.패턴소개 구조적인 디자인패턴중하나 추상적인것과 구체적인 것을 분리하여 연결하는 것 상속이 아닌 Conposition을 사용함 구분 짓는것에 더 집중함 둘을 나눠서 구현한다는 의미로 브릿지 둘로 나눠져있으니 연결해야한다에 초점을 맞추자 클라이언트는 implement를 사용하지 않고 추상적인 계층 구조사용하고 추상적인 계층구조에서 사용하는 implementation을 간접적으로 사용 Champion.java public interface Champion{ } 챔피언이라는 여러가지 있고 여러가지 복장이 있다는 것을 가정할때 KDA의 여러가지 캐릭터등 여러개를 만들수 있다고 할때 단점은 스킨만 가지고 있지만 다른 특징인 스킬등을 계층 구조에 반영되기 시작하면 많은 클래스들이 늘어나기 시작함 이 문제를 해결하기 위해 브릿.. 2021. 12. 8. 2021.12.07_어댑터패턴04.자바와스프링에서찾아보는패턴 JAVA public AdapterInJava{ public static main(String[] args){ List strings = Arrays.AsList("a","b","c"); } } 배열을 리스트로 변경할 때 이렇게 상이한 것을 바꿔주는것 Collections public AdapterInJava{ public static main(String[] args){ List strings = Arrays.AsList("a","b","c"); Enumeration enumeration =Collections.enumeration(strings); ArrayList list = Collections.list(enumeration); } } 리스트를 Enumer로 변경하는 것 Enumer을 리스트로 변.. 2021. 12. 7. 2021.12.07_어댑터패턴03.장점과단점 어댑터 패턴 기존 코드를 클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴 장점 기존 코드를 변경하지 않고 원하는 인터페이스 구현체를 만들어 사용할 수 있음 open close 원칙에 가깝다 할 수 있음 기존코드가 하던 일과 특정 인터페이스 구현체로 변환하는 작업을 각기 다른 클래스로 분리하여 관리할 수 있음 단일 책임 원칙에 가까움 단점 새 클래스가 생겨 복잡도가 증가할 수 있음 경우에 따라서는 기존 코드가 해당 인터페이스를 구현하도록 수정하는 것이 좋은 선택이 될 수도 있음 직접 구현이 불가한 경우 어댑터 패턴을 적용해야하지만 그런게 아니면 직접 구현해도 된다면 클래스를 따로 추가 하지 않아도 구현이 더깔끔하게 될 수 있음 판단은 개인이 알아서 하기 https://github.com/3DPIT.. 2021. 12. 7. 2021.12.07_어댑터패턴02.패턴적용하기 소스코드 Security LoginHandler.java public class LoginHandler { UserDetailsService userDetailsService; public LoginHandler(UserDetailsService userDetailsService) { this.userDetailsService = userDetailsService; } public String login(String username, String password) { UserDetails userDetails = userDetailsService.loadUser(username); if (userDetails.getPassword().equals(password)) { return userDetails... 2021. 12. 7. 이전 1 ··· 4 5 6 7 8 9 10 다음 728x90 반응형