분류 전체보기
-
Design PatternsDesignPattern 2013. 11. 6. 15:15
Design patterns에 관한 이야기. 시작. Creational Abstract Factory Builder Factory Method Prototype Singleton Structural Adapter Bridge Composite Decorator Facade Flyweight Proxy Behavioral Chain of responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template method Visitor
-
Abstract class와 interface 이야기Java 2013. 11. 1. 17:03
abstract class 와 interface 추상 클래스는 추상 메소드가 하나 이상 포함되는 클래스를 말한다. 인터페이스는 제공되는 메소드의 선언만 있는 특정 기능들의 나열이다. 인터페이스는 모든 메소드가 추상 메소드이며 일반 변 추상 클래스는 상속받은 자식 클래스가 추상 메소드를 반드시 구현하도록 강제할 때 쓰인다. 다시 차이점으로 돌아와서, 추상 클래스와 인터페이스의 가장 큰 차이점은 클래스인가 아닌가의 차이다. 추상 클래스를 구현하는 것은 extends (상속)이고, 인터페이스는 implements(포함)이다. 자바라는 언어에서 이 차이점은 매우 중요하다. 자바는 태생적으로 '단일 상속'만을 지원하기 때문에, 특정 추상 클래스를 구현한 자식 클래스는 다른 클래스를 상속받을 수 없다. 반대로, i..
-
Singleton pattern. 싱글턴DesignPattern/Creational Patterns 2013. 10. 31. 13:51
Singleton pattern. 싱글턴 singleton pattern은 패턴을 사용하는 특정 class의 인스턴스는 오직 하나. 임을 보장한다. Common Uses. - Abstract Factory, Builder, Prototype pattern의 구현에서 singleton을 사용 - Facade에서 해당 object를 단 하나만 필요로 할 때 사용. - State object들이 종종 singleton일 경우가 있다. - 또, Singleton은 가끔 전역 변수로 사용되어지는 것이 선호되는데, Singleton은 불필요한 변수들과 함께 전역 name space를 더럽히지 않기 때문이고 lazy allocation이나 initialization을 허용/ 가능하게 하기 때문이다. UML Examp..
-
Model-view-controller pattern. MVCDesignPattern 2013. 10. 31. 13:19
Model-view-controller pattern. MVC. 모델-뷰-컨트롤러 사용자의 interface로부터 Business logic을 분리한다. 성공적으로 분리된다면, Application은 View와 그 내부에서 실행되는 Business logic이 서로 영향 없이 수정될 수 있다. Role. - Model : Application의 정보 (data)를 나타낸다. - View : 사용자의 interface 요소를 나타낸다. - Controller : Data와 Business logic 사이를 관리한다. Structure.
-
Prototype pattern. 프로토타입DesignPattern/Creational Patterns 2013. 10. 29. 17:12
Prototype pattern. 프로토타입 - Prototype은 object를 생성할 때, 원형의 instance를 통해서 obejct의 type을 결정한다. 즉, 생성할 객체들의 타입이 프로토타입 인스턴스로부터 결정되도록 하며, 해당 인스턴스는 새로운 객체를 만들기 위해 자신을 복제하는 clone 메소드를 제공해야 한다. 이 패턴이 사용되는 경우는 abstract factory pattern과 반대로, obejct 생성자를 sub-class하는 것을 피하거나, 일반적인 방법에서 새로운 obejct를 생성할 때(new와 같은 keyword), 불가피하게 생기는 막대한 비용을 피하고자 할 때 사용한다. Structure 1. UML diagram
-
Factory method pattern. 팩토리 메소드DesignPattern/Creational Patterns 2013. 10. 25. 14:41
Factory method pattern. 팩토리 메소드 - 객체 지향 패턴의 대표적인 패턴이다. 주의 1. Allen holub의 말을 인용한 위키페이지에서 Factory Method라는 패턴 이름이 적절하지 못하다고 지적한다. 이유는, 객체를 생성하는 메소드를 Factory method라도 오해하는 개발자가 많이 있다는 것이다. 지적한대로 이런 생성 메소드는 모두 factory method라고 볼 수 없으며, Template method와 더 유사하다. 주의 2. Factory Method가 중첩(extends의 과도한 사용)되면 굉장히 복잡해지므로 사용에 유의해야 한다. Structure - UML diagram - LePUS3 Example (Java with eclipse) Usage publi..
-
Builder pattern. 빌더DesignPattern/Creational Patterns 2013. 10. 25. 14:24
Builder pattern. 빌더 - 여러 특성을 가진 객체의 생성과 표현을 분리하여, 동일한 과정을 통해 다른 특성을 가진 객체를 만든다. 빌더는 추상 팩토리와는 달리 객체의 다형성을 사용한다. 수많은 생성자를 사용하고, 단계적으로 각각의 초기화 변수들을 이용하여 생성된 각각의 객체를 반환한다. 1) 구조 2) Pseudocode class Car is Can have GPS, trip computer and a various number of seaters. Can be a city car, a sport car or a cabriolet. class CarBuilder is method getResult() is output: a Car with the right options Construct ..
-
Abstract factory pattern. 추상 팩토리 패턴DesignPattern/Creational Patterns 2013. 10. 25. 13:39
Abstract factory pattern. 추상 팩토리 패턴 (Kit) - groups object factories that have a common theme. http://en.wikipedia.org/wiki/Abstract_factory_pattern - '객체의 집합'을 생성할 때 유용하게 쓰이는 패턴으로, 상세화된 서브 클래스를 정의하지 않고도 여러 객체의 집합을 생성하기 위한 인터페이스를 제공한다. 1) 구조 - UML diagram - Lepus3 chart 2) 활용 3) 예제 (Java with eclipse)