CS 4

Factory Method

느낌 상으로는 Template Method 패턴의 확장팩 버전 같다. 인스턴스 생성할 클래스(Product)와 생성시켜주는 클래스(Factory)의 형태를 미리 정의(abstract)해놓고 하위 클래스에서 둘 다 구현시켜줌. 이 때, Template Method 패턴과 동일하게 생성되는 과정(예: 각종 옵션 값에 따라서 생성되는 인스턴스를 달리해주고 생성된 인스턴스 고유번호를 어디에 저장하고 등등..)은 클래스(Factory)에서 구현되어 있음. 다시 간단하게 설명하면 제품과 공장 및 제품 생성 구조(뼈대)는 이미 구성되어 있고 나머지는 하위 클래스에서 모두 구현한다고 보면 된다. // 제품 frame public abstract class Product { public abstract void prin..

CS/디자인 패턴 2023.09.16

Template Method

상위 클래스에서 필요한 Method들을 가지고 특정한 기능 수행을 위한 절차 또는 코드는 이미 구현되어있고 하위 클래스에서 각 절차에 필요한 Method들을 구현하는 패턴 Template Method 패턴은 이름 그대로 Template 형판, 견본이 있는 Method가 있고 각각에 필요한 메소드는 하위클래스에서 구현해준다. 예제 파일을 입력받아 데이터 내용만을 추출해야하는 기능이 있는데 파일 종류가 PDF, Excel, Word, txt 여러 종류가 있으면 데이터 타입에 따라 읽는 방식은 달라진다. 예를 들어, txt는 그냥 그대로 읽어오면 되지만 Excel 같은 경우, 쉼표로 각 데이터가 구분되어 있으니 쉼표를 구분자로 파싱을 해줘야한다. public abstract class AbstractExtra..

CS/디자인 패턴 2023.09.16

그래프 Graph

그래프 자료구조를 설명할 때, 노드와 간선을 이용하여 설명하는데 비유를 하면 네이버 지도의 길찾기와 같은 느낌인 것 같다. 대중교통으로 어떤 길을 찾아갈 때, 어느 지점(노드)에 버스를 타서 어느 지점에 내려서 어느 지점에 지하철을 타서 어느 지점에 지하철을 내려서 도착. 각 지점이 노드고 각 지점 사이는 간선이라고 볼 수 있다. 이 그래프를 표현할 때, 딕셔너리 + 리스트를 이용한다. 지점은 딕셔너리의 키 값을 이용하고, 해당 지점과 연결된 노드들은 딕셔너리의 값을 리스트를 이용하여 저장한다. (참고로 이 표현은 고정된 방식은 아니고 다른 방식도 가능하다. '배열 + 링크드리스트' 조합도 가능하고 '2차원 배열'을 이용하여도 표현이 가능하다. 여기서는 아주 개인적으로 자주 봤던 조합을 이용하였다.) g..

CS/알고리즘 2023.07.18