cs(26)
-
[디자인 패턴] Visitor Pattern
Visitor Pattern 우리가 일반적으로 데이터의 정의를 하고 처리를 해줄 때 일반적으로는 데이터가 명시되어있는 곳에 처리 해줍니다. 만약 데이터의 종류가 여러 개라면 데이터 구조의 클래스를 수정해야 합니다. Visitor Pattern은 위와 같은 상황에서 data의 명시와 처리하는 과정을 분리합니다. 그리고 방문자를 만들어서 데이터의 처리를 위임합니다. 이렇게 따로 분리를 해준다면 데이터의 구조를 건드리지 않고도 새로운 동작을 추가할 수 있습니다. 이전의 Composite Pattern의 예제를 빌려와서 사용해보겠습니다. Visitor.javapublic abstract class Visitor{ public abstract void visit(File file); public abstract ..
2019.01.22 -
[디자인 패턴] Decorate Pattern
Decorater Pattern 노트북을 살때 파우치를 사고 케이스를 사고 필름사면서 노트북을 꾸며 주듯이 객체를 만들 때 객체에 기능을 더해가는 패턴을 Decorater Pattern입니다. 객체를 생성할 때 기능을 추가하는데 특화된 패턴입니다. 일단 예제 코드를 작성해보겠습니다. Display.java public abstract class Display{ public abstract int getRows(); public abstract int getColumns(); public abstract String getRowText(int line); public void show(){ for(int i=0; i < getRows(); i++) System.out.println(getRowText(i)..
2019.01.22 -
[디자인 패턴]Composite Pattern
Composite Pattern Composite Pattern은 단일 객체와 복합객체를 동일하게 처리하기 편하게 만들어줍니다.그리고 동일한 객체를 반복해서 처리하는 과정에서 재귀적인 구조를 만드는데 도움을 주는 패턴입니다. 이번 예제코드에서는 폴더와 파일 디렉토리 구조를 만드는 예제를 만들어 보겠습니다. 파일과, 폴더를 함께말해서 Entry라고 말하겠습니다. Entry.java public abstract class Entry{ public abstract String getName(); public abstract int getSize(); public void printLine(){ printLine(""); } public abstract void printLine(String prefix); p..
2019.01.20 -
[디자인 패턴]Strategy 패턴
Strategy패턴 스타크래프라는 게임을 보면 다양한 전술이 있다. 그리고 상대가 어떻게 행동 하느냐에 맞추어서 전술을 바꿔가면서 플레이 한다. Startegy패턴은 특정 알고리즘, 특정 로직등을 위임하여 통째로 바꾸기 쉽게 만들어주는 패턴입니다. 저는 이번 예제에서 2개의 sortMachine을 만들고 한 곳은 quick 다른 한 곳은 merge를 사용하는 sort Machine을 만들어보겠습니다. 파일 구조 SortStrategy public interface SortStrategy { public void sort(int[] arr); } //전략 인터페이스를 만듭니다. 이를 구현해주는 Quick과 Merge를 아래와 같이 만듭니다. QuickSortpublic class QuickSort impl..
2019.01.19 -
[디자인패턴]Bridge 패턴
Bridge 패턴 templatePattern을 알고 보셔야 합니다.[디자인 패턴] - [디자인 패턴] template Pattern(템플릿 패턴) by python, java 지난번 AbstractFactory에 이어서 Bridge Pattern을 공부하도록 하겠습니다. 브릿지 패턴은 클래스를 두분류로 나누어서 서로를 연결하여 사용할 수 있게 해주는 패턴인데요. 여기서 두분류는 여기서 두분류는 기능의 클래스 계층, 구현의 클래스 계층입니다. 저도 이번에 공부하면서 처음 들어본 개념인데요. 이둘에 대해 설명해보도록 하겠습니다. 우리가 보통 새로운 기능을 추가하기 위해서 하위 클래스에서 상위 클래스를 상속하여 기능을 추가합니다. 또 기능을 추가하기 위해서 또 상속하여 하위클래스에 기능을 확장합니다. 기능을..
2019.01.17 -
[디자인 패턴]Abstract Factory Pattern
Abstact Factory Pattern 지난번에 Factory Pattern을 만들어서 기재한적이 있습니다. Factory패턴을 업그레이드 했음으로 읽어 보는 것이 좋을 것 같습니다. 그리고 이 예제에서는 Template패턴이 사용되어 이글을 보기전 읽어 보는 것이 좋을 것입니다.. [디자인 패턴] - [디자인 패턴] Factory Pattern(팩토리 패턴) by java, javascript, python[디자인 패턴] - [디자인 패턴] template Pattern(템플릿 패턴) by python, java 추상적인 공장?? 지난번에도 factory는 추상화 시켜주었는데 어떤 차이점이 있는 것일까??지난번에 공부했던 팩토리 패턴과 어떤 차이가 있으며 무엇이 더 좋아졌는지 알아보도록 합시다. 이..
2019.01.17