본문 바로가기

728x90

Backend/Java Design Pattern

(4)
[JAVA 디자인 패턴] 싱글톤 패턴 (Singleton Pattern) * 싱글톤 패턴 (Singleton pattern) 싱글턴 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하도록 하고, 어디서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. 이를 구현하고자, 생성자를 외부에서 호출할 수 없게 만들기 위해 생성자를 private하게 만든다. 이 패턴은 Database에 접근하고자 DAO객체를 만들때이고, Spring framework 에서 Bean을 만들때 기본적으로 Singleton으로 만들도록 하는 데 쓰인다. 그렇다면, 싱글톤을 안쓸때의 문제와 써야 하는 상황을 Printer관리자를 만드는 것을 예를 들어 설명해보겠다. 사무실에 Printer가 하나가 있고, 여기에 접근하려는 사용자가 여러명이 있는 상황이다. 이런 경우 Printer 객체는 단 하나만 존..
[JAVA 디자인 패턴] 커맨드 패턴 (Command Pattern) 활용 1 연습문제 1. TwoButtonController 클래스를 구현. * 기존코드 class TwoButtonController{ private TV tv; public TwoButtonController(TV tv) { this.tv = tv; } public void button1Pressed() { tv.power(); } public void button2Pressed() { tv.mute(); } } class TV{ private boolean powerOn = false; private boolean muteOn =false; public void power() { powerOn =! powerOn; if(powerOn) { System.out.println("power on"); } else ..
[JAVA 디자인 패턴] 커맨드 패턴 (Command Pattern) * 커맨드 패턴 (Command pattern) 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다. * 커맨드 패턴이 왜 필요한지에 대해서 알아보자. 눌리면 특정 기능을 수행하는 버튼을 생각해보자. 버튼 눌렸을때 불이 켜지는 프로그램을 개발하려면, 버튼을 눌려졌음을 인식하는 Button 클래스, 불을 켜는 기능을 하는 Lamp 클래스, 버튼을 눌렸을 댸 램프를 켜려면, Button 클래스는 Lamp 객체를 참조 해야 한다. 이 버튼을 만들고자 한다면 이렇게 만들 수 있을 것이다. class Lamp{ public void turnOn() { System.out.println("La..
[JAVA 디자인 패턴] 스트래티지 패턴 ( Strategy Pattern) JAVA 디자인 패턴 스터디를 하면서 공부한 내용들을 정리 보려고 합니다. "JAVA 객체지향 디자인 패턴" 책을 참고하면서 작성했습니다. 디자인 패턴을 사용할때는 "왜? 쓰는가?, 쓰면 뭐가 좋은가? 안쓰면 무슨 문제가 있는가?"에 대해서 먼저 완벽히 학습을 한뒤에 구체적인 예제를 코딩해보면서 공부하는 것이 효율적인 것 같습니다. 이런 디자인 패턴이 실제 코딩을 할때 어떤 패턴을 사용할지 적용할 수 있기 때문입니다. 그렇기 때문에 "왜 스트래티지 패턴을 사용하는가?" 에 대해 알아보고, 구체적인 코드를 통해 예시를 보겠습니다. 1. 로봇 만들기 "로봇" 을 만들때 , 우리는 객체지향의 상속의 개념을 통해 Robot class 에 구체적인 로봇인 TakewonV class, Atom class 이렇게 만..

728x90