728x90 디자인 패턴8 팩토리 패턴(Factory Pattern) 팩토리 패턴은 인스턴스를 만드는 절차를 추상화한 패턴이다. 팩토리 패턴은 생성 패턴 중 하나로 생성패턴은 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해 준다. 생성패턴을 활용하면 객체 생성에 대한 유연성을 확보할 수 있다. Client의 makeShape()에서 사용자에게 도형을 이름을 입력받아 도형을 생성하는 코드가 있다고 해보자. 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 32 33 34 35 36 37 38 39 40 41 42 43 interface Shape { void draw(); } class Circle implements Shape { @Override pub.. 2022. 1. 3. Observer pattern 객체의 상태 변화를 관찰하는 옵저버(관찰자)들이 있고 이런 옵저버들의 목록을 객체에 등록해 상태 변화가 있을 때 마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 즉, 옵저버의 리스트를 가지고 있는 객체의 상태가 변하면 옵저버를 통해 객체들에게 알림을 보낸다. 1 2 3 interface Listener{ void actionPerformed(); } cs 1 2 3 4 5 6 7 8 9 10 11 12 class ButtonActionListener implements Listener{ private Button myButton; @Override public void actionPerformed(){ System.out.println(this.myButton... 2021. 10. 1. MVC(Model-View-Controller) MVC는 애플리케이션을 3개의 논리적 컴포넌트로 분할하는 아키텍처 패턴이다. 이 3개의 컴포넌트는 각각 모델, 뷰, 컨트롤러이며 각 컴포넌트는 애플리케이션의 특정 부분을 담당한다. MVC는 확장가능한 프로젝트를 만들기 위해 가장 많이 사용되는 웹 개발 프레임워크다. Model 모델 컴포넌트는 유저가 작업하는 모든 데이터 관련 로직에 해당한다. 이 컴포넌트는 뷰와 컨트롤러 사이에 전송될 데이터 또는 다른 비즈니스 로직과 관련된 데이터를 나타낸다. 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달한다. 예를 들어 Customer 객체는 DB에서 소비자 정보를 찾고, 조작하고 업데이트한다. 모델은 다음과 같은 규칙을 준수해야 한다. 1. 사용자가 원하는 편집하길 원하는 데이터를 가지고 있어야 한다. 2.. 2020. 12. 18. Singleton 싱클톤은 오직 하나의 인스턴스만을 생성가능하고 getter 메서드 사나로만 생성, 접근이 가능하다. 싱글톤은 인스턴스가 오직 하나만 존재해야 하므로 생성자가 외부에 드러나 있으면 안되고 클래스 변수를 사용한다. singleton은 Eager Initialization, lazy Initialization with syncronized를 사용해 구현할 수 있다. Eager Initialization 클래스 변수로 싱글톤 객체를 선언해 클래스 로더에 의해 클래스가 로딩될때 static binding으로 인스턴스가 생성되게 한다. 이때 객체가 생성되기 때문에 thread-safe하다. 싱글턴에서는 thread-safe가 반드시 보장되야 한다. Lazy Initialization with synchronized.. 2020. 12. 13. 이전 1 2 다음 728x90