일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Gradle
- Spring Boot
- intellij
- elastic search
- SBT
- DDD
- 도메인주도설계
- Storm
- 스프링 배치
- 인텔리J
- Java
- Linux
- apache storm
- hadoop
- hibernate
- Hbase
- Spring Batch
- Spring
- Spring XD
- spark
- scala
- design pattern
- Clean Code
- elasticsearch
- 제주
- hdfs
- 엘라스틱서치
- nginx
- Angular2
- docker
- Today
- Total
목록Methdology (53)
욱'S 노트
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..
When Using It 레이어간 티어간의 연결시 공통되는 창구가 필요할 때 Class Diagram Sample Code public class Facade { public void execute() { SubClass subClass = new SubClass(); subClass.execute(); } } public class SubClass { public void execute() { } } Caution 특별한 이슈사항은 없다.
When Using It 각각의 세부적인 기능은 감추고 공통적인 형태로 사용하고 싶을때 Class Diagram Sample Code public class Adaptee { public void specificRequest() { } } public interface Target { public void request(); } public class Adapter implements Target { private Adaptee adaptee; public Adapter() { this.adaptee = new Adaptee(); } @Override public void request() { adaptee.specificRequest(); } } Caution Target과 Adaptee가 성격이 ..
When Using It 생성이 복잡한 부품들을 제조하는 공장 자체를 만들어 제공하고 싶을때 Class Diagram Sample Code public interface Prototype { public Object clone(); } public class ConcretePrototype implements Prototype { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override protected Object clone() throws CloneNotSupportedException { ConcretePrototype prot..
When Using It 생성이 복잡한 부품들을 제조하는 공장 자체를 만들어 제공하고 싶을때 Class Diagram Sample Code public class AbstractProduct { } public class ConcreteProduct extends AbstractProduct { } public class ConcreteProduct2 extends AbstractProduct { } public abstract class AbstractFactory { public AbstractFactory getFactory(String name) { if (name.equals("A")) { return new ConcreteFactory(); } else { return null; } } p..
When Using It 클래스에서 직접 인스턴스 생성하는 것보다 훨씬 유연하고 확장성 있는 구조를 가지고 싶을때 Class Diagram Sample Code public abstract class Product { } public class ConcreteProduct extends Product { } public abstract class Creator { public final Product create() { Product product = createProduct(); return product; } public abstract Product createProduct(); } public class ConcreteCreator extends Creator { @Override publi..