728x90 반응형 객체지향40 2021.12.09_컴포짓패턴01.패턴소개 컴포짓 전체 계층구조와 그리고 그 계층구조를 구성하는 부분적인 객체를 클라이언트 입장에서 동일하게 생각할 수 있게 전체인지 전체의 부분인지 , 하위 단에 있는 것인지(트리의 마지막 오브젝트인지) 상관없이 동일한 인터페이스로 사용하게 하는것 트리 구조로 구성해야하는 제약 사항이 있음 그래서 그렇게 많이 쓰이지 않을까 하지만, 일상에 트리 구조가 많음 디자인패턴이 아니라 자료구조에 트리구조 공부하는 이유는 다양하게 구성할 수있는것이 많고 소프트엔지니어에서도 많이 사용할 수 있음 소스 코드 이렇게 하면 클라이언트가 많은것을 알아야함 객체지향적으로 옳은 것인지 고민이 되고 , 캐릭터가 아이템을 가지고 있는데 그것을 어떻게 디테일한것을 클라이언트가 알아야만 개수나 합을 알 수 있는 것인지 고민해야함 public .. 2021. 12. 9. 2021.12.08_브릿지패턴04.자바와스프링에서찾아보는패턴 Java 대표적인 예제 Jdbc 있음 import java.sql.*; public class JdbcExample { public static void main(String[] args) throws ClassNotFoundException { Class.forName ("org.h2.Driver"); try (Connection conn = DriverManager.getConnection ("jdbc:h2:mem:~/test", "sa","")) { String sql = "CREATE TABLE ACCOUNT " + "(id INTEGER not NULL, " + " email VARCHAR(255), " + " password VARCHAR(255), " + " PRIMARY KEY ( id ).. 2021. 12. 8. 2021.12.08_브릿지패턴03.장점과단점 장점 추상적인 것과 구체적인 것 분리하고, 추상적인것 그대로 유지한채 우리가 구체적인 코드만 변경 또는 확장 가능 개방-폐쇄 원칙(OCP, Open-Closed Principle)임 제각각 본인의 일만 관리하면됨 single responsibility임 두가지 객체지향 원칙을 지킴으로 얻을 수 있는것 기존의 코드 재사용, 중복코드를 줄일 수 있음 단점 분리하면서 코드가 복잡해 보일 수 있고, 계층 구조 늘어나서 코드를 파악하는데 복잡해보일 수 있음 https://github.com/3DPIT/study/blob/master/05.%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%ED%95%99%EC%8A%B5%ED%95%98%EB%8A%94GoF%EC%9D%98%EB%94%94%EC%9E.. 2021. 12. 8. 2021.12.07_브릿지패턴02.패턴적용하기 Champion.java public interface Champion{ void move(); void skillQ(); void skillW(); void skillE(); void SkilR(); } 스킨과 스킬이 바뀌어야한다는 과정을 표현 KDA아리.java public KDA아리 implements Champion{ @Override public void move(){ System.out.println("KDA 아리 move"); } @Override public void skillQ(){ System.out.println("KDA 아리 Q"); } @Override public void skillW(){ System.out.println("KDA 아리 W"); } @Override public.. 2021. 12. 8. 이전 1 ··· 3 4 5 6 7 8 9 10 다음 728x90 반응형