Q. 책임에 하는것과 아는것으로 구성되어 있다고 했는데 아는 것을 보장하는 것을 역할에 범주에 포함시켜야하는 것일까? 아는 것(= 프로퍼티)도 추상화를 해야 하는 것일까?

강 : 안넣는게 맞는 것 같다 ⇒ 만약에 토끼의 위치에 다른 동물로 대체되어도 무조건 목격자(증인)을 알아야하는게 맞다면 추상 클래스로 프로퍼티를 추상화시키는게 아닌 팩터리 메서드 형태로 매게인자에 증인 인터페이스를 받도록 구현하여 토끼 역할이 증인을 가지는 것을 추상화 시킬 것 같다

부가 설명 : 팩터리 메서드란

interface 인터페이스1{
	
	인터페이스1 create(목격자 ㅁ격자);
} 

class 클래스1 implement 인터페이스1{
	
	private 클래스1()
	
	}
	
	public 클래스1  create(){
	   // 로직 수행
		 
		 return new 클래스1();  
	}		
}