일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- design pattern
- SBT
- elastic search
- intellij
- Domain Driven Design
- Storm
- elasticsearch
- docker
- Clean Code
- Java
- Gradle
- 엘라스틱서치
- DDD
- Angular2
- Spring Batch
- apache storm
- scala
- hdfs
- 제주
- hibernate
- Spring XD
- hadoop
- Hbase
- Linux
- spark
- nginx
- 도메인주도설계
- Spring
- Spring Boot
- 스프링 배치
- Today
- Total
목록Methdology (48)
욱'S 노트
When Using It 다수의 처리자들을 연결하고 싶을때 Class Diagram Sample Code public abstract class Handler { private Handler nextHandler; public abstract boolean handleRequest(); public final void setNext(Handler handler) { this.nextHandler = handler; } public final void process() { if (handleRequest() == false) { if ( nextHandler != null) { nextHandler.handleRequest(); } } } } public class ConcreteHandler exte..
When Using It 특정한 데이터 구조 가진 오브젝트를 방문하면서 처리를 하고 싶을때 Class Diagram Sample Code public interface Element { public void accept(Visitor visitor); public void add(Element element); public List getChildren(); } public class ConcreteElement implements Element { private List children = new ArrayList(); @Override public void accept(Visitor visitor) { visitor.visitConcreteElement(this); } @Override publi..
When Using It 알고리즘 구현 부분을 교체 하고 싶을때 Class Diagram Sample Code public interface Strategy { public void algorithmInterface(); } public class ConcreteStrategy implements Strategy { @Override public void algorithmInterface() { } } public class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void contextInteface() { strategy.algorithmInter..
When Using It 하위클래스에 구현을 위임하고 싶을때 Class Diagram Sample Code public abstract class AbstractClass { public abstract void templateMethod1(); public abstract void templateMethod2(); public abstract void templateMethod3(); public void execute() { templateMethod1(); templateMethod2(); templateMethod3(); } } public class ConcreteClass extends AbstractClass { @Override public void templateMethod1() {}..
When Using It Heavy한 Job이 수행되는 클래스들을 미리 만들어 놓고 공유하고 싶을때 Class Diagram Sample Code public interface Aggregate { } public interface Iterator { public Object next(); public boolean hasNext(); } public class ConcreteAggregate implements Aggregate { private Object[] items; public Iterator iterator() { return new ConcreteIterator(this); } public Object getItem(int index) { if ( index < items.length ..
When Using It Heavy한 Job이 수행되는 클래스들을 미리 만들어 놓고 공유하고 싶을때 Class Diagram Sample Code public interface Flyweight { public void Operation(); } public class ConcreteFlyweight implements Flyweight { @Override public void Operation() { System.out.println("A"); } } public class FlyweightFactory { Map pool = new HashMap(); public FlyweightFactory() { pool.put("A",new ConcreteFlyweight()); } public Flywe..
When Using It Lazy Init 등 실제 사용이나 필요로하는 시점에 작업을 수행한다. Class Diagram Sample Code public interface Subject { public void request(); } public class RealSubject implements Subject { @Override public void request() { System.out.println("실제수행"); } } public class Proxy implements Subject { private RealSubject realSubject; @Override public void request() { realSubject.request(); } } Caution 특별한 주의사항은 ..
When Using It 재귀적인 계층구조를 만들고 싶을때 Class Diagram Sample Code public abstract class Component { public abstract void operation(); public abstract void add(Component component); public abstract void remove(Component component); } public class Leaf extends Component { @Override public void operation() { System.out.println(this.toString()); } @Override public void add(Component component) { throw ne..
When Using It 객체의 본질적인 정보와 실제 보여지는 기능을 분리하고 싶을때 Class Diagram Sample Code public class Abstraction { private Implementor implementor; public Abstraction(Implementor implementor) { this.implementor = implementor; } public void operation() { implementor.operationImpl(); } } public class RefinedAbstraction extends Abstraction { public RefinedAbstraction(Implementor implementor) { super(implemento..
When Using It 객체의 본질적인 정보와 실제 보여지는 기능을 분리하고 싶을때 Class Diagram Sample Code public abstract class Component { public abstract String operation(); } public class ConcreteComponent extends Component { private String name; public ConcreteComponent(String name) { this.name = name; } @Override public String operation() { return this.name; } } public abstract class Decorator extends Component { protec..