본문 바로가기
반응형

Development, Architecture30

[디자인 패턴] Singleton Pattern 싱글턴 패턴 Singleton Pattern Definition 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다. Source code 기본적인 구조는 아래와 같습니다. package singleton_pattern; public class Singleton { private static Singleton instance; public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return instance; } } 하지만 이 경우, 동기화 이슈가 발생할 수 있습니다. 여러 스레드가 동시에 실행되면 인스턴스가 여러개 생성될 가능성이 있습.. 2021. 12. 1.
[디자인 패턴] Factory Pattern 팩토리 패턴 Factory Pattern Introduction 공을 만드는 공장이 있습니다. 클라이언트는 공장에게 원하는 공을 만들어 달라고 부탁합니다. 공장은 최대한 어떤 부탁이던 유연하게 대처할 수 있도록 만들고 싶습니다. Definition 팩토리 메서드 패턴은 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듦니다. 추상 팩토리 패턴은 제품을 생성하는 인터페이스를 구성하고, 그 인터페이스를 사용하여 제품이 만들어지도록 하는 패턴입니다. Question 팩토리 메서드 패턴과 추상 팩토리 패턴은 무엇이 다른가? 팩터리 메서드 패턴에서는 구상 클래스에서 객체를 만든다. 즉 구상 클래스에서 인스턴스를 생성함. 반면 추상 팩토리 페턴에서는 추상 팩토리 인터페이스.. 2021. 12. 1.
[디자인 패턴] Decorator Pattern 데코레이터 패턴 Decorator Pattern Introduce 천재 과학자 이씨는 아톰을 만들었습니다. 아톰의 초기 버전은 로봇의 기본 동작만 수행합니다. 앞으로 새로운 버전이 나올 때마다 아톰의 기능은 추가될 수 있습니다. 기능이 반드시 추가만 되는 것은 아니고 특정 기능을 뺄 수도 있습니다. 즉, 여러 기능을 자유롭게 조합시켜 아톰에게 탑재시킬 수 있어야 합니다. 이럴때 데코레이터 패턴이 사용될 수 있습니다. Definition 데코레이터 패턴은 객체에 추가적인 요건을 동적으로 첨가합니다. 쉽게 말해 장식과 같이 하나의 객체에 여러 기능을 꾸며줍니다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공합니다. Structure Source Code 가장 먼저 컴포넌트 인터페이.. 2021. 12. 1.
[디자인 패턴] Observer Pattern 옵저버 패턴 Observer Pattern Introduce 아이돌스타의 팬들은 아이돌 스타를 팔로우합니다. 팔로우하는 동안은 아이돌 스타의 일거수일투족을 알 수 있습니다. 하지만 언팔로우를 하면 더 이상 일거수일투족을 알지 못하게 됩니다. 이럴때 옵저버 패턴이 사용될 수 있습니다. Definition 옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로, 일대다 의존성을 정의합니다. Structure 주체 객체와 옵저버 객체가 존재합니다. 주체 객체는 리스트에 옵저버 객채를 넣고, 빼고, 알림을 보내는 Subject 인터페이스를 구현합니다. 옵저버 객체는 상태를 업데이트하는 Observer 인터페이스를 구현합니다. Source Code Subjec.. 2021. 12. 1.
[디자인 패턴] Strategy Pattern 스트레티지 패턴/ 전략 패턴 Strategy Pattern Introduce 서울대학교에 다니는 많은 학생들은 다양한 방법으로 학교에 통학합니다. 집이 가깝거나 기숙사에 사는 학생들은 직접 걸어서 등교합니다. 집이 멀거나 자취를 하는 학생들은 버스나 자동차를 이용해 등교합니다. 즉, 학생들은 환경에 따라 여러 가지 등교 전략을 수립합니다. 하지만 처음 정한 전략을 끝까지 유지하는 것은 아닙니다. 상황에 따라 등교 전략을 바꿀 수도 있습니다. Definition 전략 패턴이란 행동을 클래스로 캡슐화하여 동적으로 행동 전략을 바꿀 수 있게 해주는 디자인 패턴입니다. 코드 블럭 내부를 일일이 수정하지 않고도 손쉽게 전략을 바꿀 수 있습니다. Structure 전략 패턴은 다음과 같은 구조를 가집니다. Source Code 전략 인터페이스.. 2021. 12. 1.
디자인패턴 공부 디자인패턴 글은 깃허브에 정리해두기로! https://github.com/LeeYongjun1030/DesignPatternStudy GitHub - LeeYongjun1030/DesignPatternStudy: It's for design pattern study It's for design pattern study. Contribute to LeeYongjun1030/DesignPatternStudy development by creating an account on GitHub. github.com 2021. 11. 24.
반응형