Home
Youngho's Devlog
Cancel

[디자인패턴] 컴퍼지트 패턴(Composite Pattern)

컴퍼지트 패턴(Composite Pattern) 부분(part)-전체(whole)의 관계를 가지는 객체들을 정의할 때 유용 클라이언트는 전체와 부분을 구분하지 않고 동일한 인터페이스를 사용할 수가 있다. 컴퓨터에 추가 장치 지원하기 Example 소스 코드 public class Keyboard { private int pr...

[디자인패턴] 데커레이터 패턴(Decorator Pattern)

데커레이터 패턴(Decorator Pattern) 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 사용하는 패턴이다. 데커레이터 패턴은 기본 기능에 추가될 수 있는 많은 수의 부가 기능에 대해서 다양한 조합을 동적으로 구현할 수 있는 패턴이다. 동적으로 클래스의 기능을 확장시키고자 할 때 사용하는 패턴 (추가되는 기능을 갖는 클래스...

[디자인패턴] 팩토리 메서드 패턴(Factory Method Pattern)

팩토리 메서드 패턴(Factory Method Pattern) 객체의 생성 코드를 별도의 클래스/메소드로 분리함으로써 객체 생성의 변화를 대비하는 데 유용 팩토리 메소드 패턴은 객체의 생성 코드를 별도의 클래스/메소드로 분리함으로써 객체 생성 방식의 변화를 대비하는 데 유용하다. 여러 방식의 엘리베이터 스케줄링 방법 지원하기 Exampl...

[디자인패턴] 빌더 패턴(Builder Pattern)

Builder패턴(Builder Pattern) 객체의 생성과정과 표현을 분리하는 패턴입니다. 왜 Builder패턴을 사용하느가? 다음의 UserInfo클래스가 있다고 가정해보자. /** * 다음과 같이 객체를 만듭니다. */ public class UserInfo { private String name; private ...

[디자인패턴] 추상 팩토리 메서드 패턴(Abstract Factory Method Pattern)

추상 팩토리 메서드 패턴(Abstract Factory Method Pattern) 관련성이 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용 엘리베이터 부품 업체의 변경하기 Example LG와 현대 업체의 모터와 문을 지원하는 클래스 템플릿 메서드의 적용 public abstract...

[디자인패턴] 싱글톤 패턴(Singleton Pattern)

싱글톤 패턴(Singleton Pattern) Singleton 패턴은 인스턴스를 불필요하게 생성하지 않고 오직 JVM내에서 한 개의 인스턴스만 생성하여 재사용을 위해 사용되는 디자인패턴 프린터 관리자 Example 단 하나의 프린터 객체를 만들어 사용자 객체가 사용하려 한다. public class User { private...

[디자인패턴] 디자인 패턴

디자인 패턴 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 떄 재사용할 수 있는 훌륭한 해결책 패턴이란? 공통의 언어를 만들어 의사 소통을 원활하게 한다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 ...

[디자인패턴] SOLID 원칙

SOLID 원칙 - 로버트 마틴이 주장한 다섯 가지 설계 원칙 1) SRP(단일 책임 원칙, Siingle Responsibility Principle) 단일 책임 원칙이다. 즉, 클래스는 단 하나의 책임만을 가지도록 설계해야 한다는 의미 책임은 ‘해야 하는 것’과 ‘변경 이유’ 두 가지로 해석 될 수 있음 다음 그림은 SRP를 만족하지 ...

[디자인패턴] 객체지향 원리

객체지향 원리 캡슐화 요구사항의 변경 소프트웨어 개발의 골치거리 해결책은 요구사항 변경을 당연한 것으로 받아들이고 이에 대비하는 것이다. 캡슐화를 통해 높은 응집도와 낮은 결합도를 갖는 설계 다음과 같이 클래스 멤버 변수의 접근 제어자를 private으로 설정함으로...

[디자인패턴] 객체지향 모델링

객체지향 모델링 소프트웨어 모델의 역할 서로의 해석을 공유해 합의를 이루거나 해석의 타당성을 검토한다. 현재 시스템 또는 앞으로 개발할 시스템의 원하는 모습을 가시화한다. 시스템의 구조와 행위를 명세할 수 있으며 시스템을 구축하는 틀을 제공한다. UML(Unified Modeling Language) 대표적인 소프트웨어 모델링 언...