'CS Study/디자인패턴' 카테고리의 글 목록 (14 Page)
본문 바로가기
728x90
반응형

CS Study/디자인패턴84

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.
2021.12.08_브릿지패턴01.패턴소개 구조적인 디자인패턴중하나 추상적인것과 구체적인 것을 분리하여 연결하는 것 상속이 아닌 Conposition을 사용함 구분 짓는것에 더 집중함 둘을 나눠서 구현한다는 의미로 브릿지 둘로 나눠져있으니 연결해야한다에 초점을 맞추자 클라이언트는 implement를 사용하지 않고 추상적인 계층 구조사용하고 추상적인 계층구조에서 사용하는 implementation을 간접적으로 사용 Champion.java public interface Champion{ } 챔피언이라는 여러가지 있고 여러가지 복장이 있다는 것을 가정할때 KDA의 여러가지 캐릭터등 여러개를 만들수 있다고 할때 단점은 스킨만 가지고 있지만 다른 특징인 스킬등을 계층 구조에 반영되기 시작하면 많은 클래스들이 늘어나기 시작함 이 문제를 해결하기 위해 브릿.. 2021. 12. 8.
728x90
반응형