MVC 패턴, MVP 패턴, MVVM패턴
·
Design Pattern
MVC 패턴 MVC패턴은 모델, 뷰, 컨트롤러로 이루어진 패턴으로 애플리케이션의 구성요소를 세가지 역할로 분리하여 개발 프로세스에서 각각의 구성요소에만 집중해서 개발할 수 있음. Model : 애플리케이션의 데이터인 DB, 상수, 변수등을 뜻함 View: 사용자 인터페이스 요소 Controller: 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할을 함 => 대표적으로 스프링 WEB MVC패턴이 있음 MVP 패턴 MVC 패턴으로 파생되었으며, MVC에서 C에 해당하는 컨트롤러가 Presenter로 교체된 패턴 MVC패턴과 다르게 View에 직접 연결되는 대신 인터페이스를 통해 상호작용한다고 함. MVVM 패턴 MVC 에서 C에 해당하는 컨트롤러가 뷰 모델로 바뀜 뷰 모델은 뷰를 더 추상화하며, 커맨드..
Iterator Pattern
·
Design Pattern
- 컬렉션의 요소를 순회하는 패턴 - 내부의 표현을 노출시키지 않음 (List, Stack, Tree, Set 등 어떤 컬렉션인지 노출하지 않음) 이터레이터 패턴을 사용하면 접근하는 작업을 컬렉션 객체가 아닌 반복자 객체에서 맡게 됨. 집합체의 인터페이스 구현이 간단해지고, 집합체에서는 반복작업에서 손을 떼고 객체 컬렉션 관리에만 전념할 수 있음. package designpattern.iterator; interface Aggregate { public abstract Iterator iterator(); } interface Iterator { public abstract boolean hasNext(); public abstract Object next(); } class Book { private..
프록시 패턴
·
Design Pattern
프록시 패턴은 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다. 보안, 데이터 검증, 캐싱, 로깅에 사용된다. package designpattern.proxy; interface Subject { String request(); } class RealSubject implements Subject { @Override public String request() { return "Hi!"; } } class Proxy implements Subject { private final RealSubject realSubject = new RealSubject(); @Override public String request() { return rea..
Observer Pattern
·
Design Pattern
- 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 옵저바 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴 - 주체는 객체의 상태 변화를 보고 있는 관찰자 - 옵저버는 객체의 상태 변화에 따라 전달되는 메서드를 기반으로 추가 변화 사항이 생기는 객체를 의미 package designpattern.observer; import java.util.ArrayList; import java.util.List; import java.util.Observer; // 주체 interface Subject { public void register(Observer obj); public void unregister(Observer obj); public void notifyObservers();..
전략 패턴 - Strategy Pattern
·
Design Pattern
Strategy Pattern - 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 캡슐화 알고리즘을 컨텍스트 안에서 바꿔주는 것 package designpattern.strategy; import java.util.ArrayList; import java.util.List; interface PaymentStrategy { public void pay(int amount); } class KAKAOCardStrategy implements PaymentStrategy { private String name; private String cardNumber; private String cvv; private String dateOfExpiy; public KAKAOCardStrateg..
Factory Pattern
·
Design Pattern
팩토리 패턴(Factory Pattern) - 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서, 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 - 상위 클래스와 하위 클래스가 분리 되기 때문에 느슨한 결합을 지님. - 객체 생성한 인터페이스는 미리 정의하고, 객체 생성은 서브클래스(팩토리)로 위임함 package designpattern.factory; abstract class Coffee { public abstract int getPrice(); @Override public String toString() { return "Hi this coffee is " + this.getPrice();..
디자인 패턴과 Singleton Pattern
·
Design Pattern
디자인 패턴 프로그램 설계시 발생했던 문제들을 객체 간 상호관계를 이용하여 해결할 수 있도록 하나의 규약으로 만들어 놓은 형태 Signleton Pattern - 싱글톤 패턴 : 하나의 클래스에 오직 하나의 인스턴스만 지니는 것. 보통 db연결 모듈에 많이 사용된다. package designpattern.singleton; class Singleton { private static class singleInstanceHolder { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return singleInstanceHolder.INSTANCE; } } public cla..
takoyummy
'Design Pattern' 카테고리의 글 목록