Language/Java Design Pattern
-
Java Design Pattern - 스테이트 패턴(State Pattern)Language/Java Design Pattern 2022. 11. 20. 19:40
스테이트 패턴(State Pattern) 스테이트 패턴이란? 스테이트 패턴은 객체가 특정 상태에 따라 행위를 달리하는 상황에서, 자신이 직접 상태를 체크하여 상태에 따라 행위를 호출하지 않고, 상태를 객체화하여 상태가 행동을 할 수 있도록 위임하는 패턴을 말한다. 즉, 객체의 특정 상태를 클래스로 선언하고, 클래스에서는 해당 상태에서 할 수 있는 행위들을 메서드로 정의한다. 그리고 이러한 각 상태 클래스들을 인터페이스로 캡슐화하여, 클라이언트에서 인터페이스를 호출하는 방식을 말한다. 여기서 상태란, 객체가 가질 수 있는 어떤 조건이나 상황을 의미한다. 스테이트 패턴의 사용 이유 예를 들어, 노트북을 켜고 끄는 상황을 생각해보겠다. 1. 노트북 전원이 켜져 있는 상태에서 전원 버튼을 누르면, 전원을 끌 수..
-
Java Design Pattern - 싱글톤 패턴(Singleton Pattern)Language/Java Design Pattern 2022. 11. 18. 17:33
싱글톤 패턴(Singleton Pattern) 싱글톤 패턴이란? 싱글톤 패턴이란, 인스턴스가 프로그램 내에서 오직 하나만 생성되는 것을 보장하고, 프로그램 어디에서든 이 인스턴스에 접근할 수 있도록 하는 패턴이다. 즉, 인스턴스가 사용될 때 똑같은 인스턴스를 여러 개 만드는 것이 아니라, 기존에 생성했던 동일한 인스턴스를 사용하게끔 하는 것이다. 싱글톤 패턴의 구현 public class SingleObject { private static SingleObject singleObject = null; private SingleObject() { } public static SingleObject getInstance() { if (singleObject == null) { singleObject = ne..
-
Java Design Pattern - 전략 패턴(Strategy Pattern)Language/Java Design Pattern 2022. 11. 18. 15:02
전략 패턴(Stratgy Pattern) 전략 패턴이란? 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말한다. 다시 말해, 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것만으로 행위의 수정이 가능하도록 만든 패턴이다. 전략 패턴의 사용 이유 위 다이어그램과 같이 기차(Train)와 버스(Bus) 클래스가 있고, 이 두 클래스는 Movable 인터페이스를 구현하고 있는 구조이다. public interface Movable { public String..
-
Java Design Pattern - SOLID 원칙Language/Java Design Pattern 2022. 11. 18. 15:02
SOLID 원칙 SOLID 원칙이란? SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 원칙(SRP, OCP, LSP, ISP, DIP)을 말한다. 설계 원칙을 잘 알아야 하는 이유는 시스템에 예상하지 못한 변경사항이 발생하더라도, 유연하게 대처하고 이후에 확장성이 있는 시스템 구조를 설계하기 위해서이다. 좋은 설계란 시스템에 새로운 요구사항이나 변경사항이 있을 때, 영향을 받는 범위가 적은 구조를 말한다. 1. SRP(Single Responsibility Principle), 단일 책임 원칙 객체는 단 하나의 책임만 가져야 한다는 원칙을 말한다. 객체지향적으로 설계할 때는 응집도는 높게, 결합도는 낮게 설계하는 것이 좋다. 1. 응집도 : 한 프로그램의 요소가 얼마나 뭉쳐있는지, 즉 구성 요소..