분류 전체보기

    [모던 c++의 디자인 패턴] 3장. 팩터리

    팩터리 패턴 팩터리 메서드는 생성할 타입의 멤버 함수로, 객체러르 생성하여 리턴함 -> 생성자를 대신함 패터리는 별도의 클래스로, 목적하는 객체의 생성 방법을 알 수 있음 추상 팩터리는 구현 클래스에서 상속받는 추상 클래스이며, 여러 타입의 팩터리를 생성할 때 사용됨 팩터리는 캐싱과 같은 메모리 최적화 구현이 가능함 -> pooling이나 sigleton pattern 3.2 팩터리 메서드 어떤 객체를 생성할지 이름으로 명확하게 나타낼 수 없는 생성자 대신 객체를 생성해서 리턴하도록 하는 메서드 각각의 팩터리 메서드는 static 함수로 표현 struct Point { protected: Point(const float x, const float y) : x{x}, y{y} {} public: stati..

    [모던 c++의 디자인 패턴] 2장. 빌더

    빌더 빌더 패턴(Builder pattern)은 생성이 까다로운 객체를 쉽게 처리하기 위한 패턴 빌더 패턴은 단순하게 개별 객체의 생성을 별도의 다른 클래스에게 위임 빌더 하나의 인터페이스가 여러 하위 빌더를 노출할 수 있음 상속과 흐름식 인터페이스를 요령있게 활용하면, 여러 빌더를 거치는 객체 생성을 쉽게 할 수 있음 2.2 단순한 빌더 struct HtmlBuilder { HtmlElement root; HtmlBuilder(string root_name) { root.name = root_name; } void add_child(string child_name, string child_text) { HtmlElement e{ child_anme, child_text }; root.elements.e..

    [모던 c++의 디자인 패턴] 1장. SOLID 디자인 원칙

    디자인 패턴 2000년대 초 로버튼 마틴(Robert C. Martin)에 의해 소개됨 SOLID 디자인 패턴은, 우리가 앞으로 살펴볼 디자인 패턴에 전반적으로 녹아져 있음 SOLID 디자인 패턴 1) 단일 책임 원칙(Single Responsibility Principle, SRP) 단일 책임 원칙에서 각 클래스는 단 한 가지의 책임을 부여받아, 수정할 이유가 단 한가지여야 한다. 전지전능한 객체 (여러 기능을 담고 있는)는 SPR를 위배한다. 기록을 위한 메모장 클래스가 있을 때, 이 클래스는 vector에 파라미터로 주어지는 값을 추가하는 함수가 존재한다. 이때, 추가로 영구적인 파일을 저장하는 기능을 만든다고 할 때 디스크에 파일을 쓰는 기능 또한 메모장 클래스의 역할일까? 작은 수정을 여러 클래..

    BOJ - 단어 수학 1339번 (JAVA)

    ❓ 문제 - 백준 단어 수학 1339번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/1339) 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 📝 문제해결법 1. 문제 알파벳 대문자를 0~9의 숫자로 치환할 때, 모든 알파벳을 더한 값이 최대값이 되도록 각 알파벳에 할당될 숫자를 정해야한다. 따라서 선정된 알파벳 숫자에 의해 더한 값의 최대값을 정답으로 출력한다. 2. 해결 방법 그리디 알고리즘의 방법으로 문제를 접근한다. 각 알파벳은 각각의 자릿수가 있으므로 주어..