냥코딩쟝
헤드퍼스트 - 분리하기/옵저버 패턴

fly() quack()문제를 제외하면 Duck 클래스는 잘 작동하고 있으며, Duck 클래스는 그대로 두는 게 좋다 '변화하는 부분과 그대로 있는 부분'을 분리 (Duck 클래스와는 완전히 별개로) 2개의 클래스 집합을 만들어야함 fly()와 quack() 문제를 제외하면 Duck클래스는 잘 작동하고 있으며, Duck 클래스는 그대로 두는것이 좋다 변화하는 부분과 그대로 있는 부분을 분리할려면 (Duck클래스와는 완전히 별개로)2개의 클래스 집합을 만들어야한다 duck 클래스 바뀌는 부분뽑아내기 -> 나는 행동 , 꽥꽥거리는 행동 Duck클래스에 flyBehavior와 quackBehavior라는 인터페이스 형식의 인스턴스 변수를 추가한다 FlyBehavior와 QuackBehavior 인터페이스로 옮..

헤드퍼스트 디자인 패턴- 디자인하는 방법
-java spring notes-/JAVA 2023. 1. 31. 17:41

자바문법을 어느정도 공부하고 spring프로젝트를 만들기 전에, 간단한 디자인 패턴을 알고 가는것이 중요하다고 생각되어서 좋은책을 찾아 읽고, 간단하게 포스팅해보자고 한다. 디자인패턴의 세계로 떠나기 duck클래스에 fly()메소드를 추가해서 상속을 받게 했는데 고무오리도 날게 되었다... -> 상속을 생각해보자 DecoyDuck quack(){ //아무것도 하지 않도록 오버라이드 } display(){//가짜 오리} fly(){ //아무것도 하지 않도록 오버라이드} 바뀌는 부분과 그렇지 않은 부분 분리하기 fly() quack()은 Duck 클래스에 있는오리 종류에 따라 달라지는 부분이다 fly()와 quack()을 Duck클래스로부터 분리하려면 2개의 메소드 모두 Duck 클래스에서 끄집어내서 각 행..