목록디자인 패턴 (4)
나의 지식 보관소
옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의합니다. 이러한 일대다 관계는 주제(subject)의 상태가 바뀌면 옵저버(observer)에 연락이 가는 방식에 의존합니다. 연락 방식에 따라 옵저버에 있는 값이 새로운 값으로 갱신될 수도 있습니다. 옵저버 패턴을 구현하는 방법은 여러 가지가 있지만 대부분 주제 인터페이스와 옵저버 인터페이스가 들어있는 클래스 디자인을 바탕으로 구현합니다. //CurrentconditionsDisplay.java public class CurrentConditionsDisplay implements Observer, DisplayElement { private float tempe..
객체지향에는 SRP(단일 책임 원칙), OCP(개방 폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)과 같은 총 다섯개의 원칙이 있고 줄여서 SOILD원칙이라 부른다. Single Responsiblity Principle (단일 책임 원칙) : 클래스에는 한 가지, 단 한 가지 변경 이유만 존재해야 한다. Open Closed Principle (개방 폐쇄 원칙) : 클래스는 확장에 열려 있어야 하며 변경에 닫혀 있어야 한다. Liskov Subtitution Principle (리스코프 치환 원칙) : 상속받은 클래스는 기초 클래스를 대체할 수 있어야 한다. Dependency Inversion Principle (의존 역전 원칙) : 추상화에 의존..
스트래티지 패턴은 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만드는 것이다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 는 내가 보는 책에서 나온 정의이고 쉽게 말하자면, 객체가 할 수 있는 행위들을 전략으로 만들어 놓고, 동적으로 전략을 바꿔가며 행위를 수정 할 수 있도록한 패턴이다. public class StrategyPattern { static public void main(String args[]) { Player player = new Player(); player.setAttackBehavior(new Punch()); player.PerformAttack(); player.setAttackBehavior(new K..
전체 프로그램에서 단 하나의 객체를 만들도록 하는것을 싱글톤 패턴이라고 부른다. 단 하나의 객체만을 만들기 위해서 외부에서의 생성자 호출을 막기위해 생성자에 private 접근 제한자를 붙여준다. 그리고 클래스 내부에 자신의 타입인 정적 필드를 하나 선언하고 자신의 객체를 생성해 초기화 한다. 정적 필드도 private 접근 제한자를 붙여 외부에서 필드값을 변경하지 못하도록 막는다. 대신 외부에서 호출할수있는 정적메서드인 getInstance()를 선언하고 참조하고 있는 자신의 객체를 리턴해준다. public class 클래스명 { private staitc 클래스명 singleton = new 클래스명(); private 클래스명() { } static 클래스명 getInstance() { return..