내 프로그램의 컨트롤러 구성 요소에 대한 전략 패턴을 구현하려고합니다.컨트롤러에서 전략 패턴을 구현하는 방법
빈 캔버스에 항목을 만들 수있는 CreateViewState와 같은 다른 뷰 상태가 있으므로 createInput()
, addToModel()
및 stuff
과 같은 메서드가 필요합니다.
내가 가지고있는 또 다른 상태는 이전에 추가 한 항목을 편집 할 수있는 EditViewState입니다. 입력을 선택한 다음 색상이나 크기 등을 변경합니다. 컨트롤러가 필요 방법은 selectInputAtLocation()
, 또는 changeColor(java.awt.Color color)
또는 changeSize(int size)
...
나는 그것이 내가 repOK()와 같은 일반적인 방법이있는 IController 인터페이스를 만들어 가야하는 방법, toString()보다 thisWasTheLocation 같은 몇 가지 (그래서 int x, int y) 뷰가 정적으로 호출하여 화면에서 누른 위치를 컨트롤러로 전달합니다.
그러나 특정 직업을 수행하는 데 나는 그들이 가지고있는 공통된 방법이 없습니다. 나는 doStuff(Item item)
메소드를 인터페이스에 넣은 다음 컨트롤러 로직을 수행하여 클라이언트 코드가 전체 코드에서 IController.getInstance().doStuff(item)
을 사용할 수 있도록 할 생각이었습니다. 내가 예측할 수있는 한 특정 메소드를 호출하면 제어기를 캐스팅해야합니다 (editController의 경우 changeColor()
, createController의 경우 createInput()
).
인터페이스에서 doStuff()
메서드를 만들면 editController (특히 언급하지 않은 7-8 개 이상의 메서드가 있음)에 대해 많은 if 문을 구현해야합니다.
이 전체 시스템을 설계하려면 어떻게해야합니까?
P.S : Controllers
는 싱글이다 그러므로 getInstance()
다음
선택된 MVC 프레임 워크와 같은 클래스는 등 전화를받을하는 방법을 결정하는 구성을해야합니다 그리고 귀하의 질문에 다시 답변하십시오.하지만 불행히도 제가 가정해야 할 많은 가정이 있으며 귀하의 코스가 현재 귀하에게 가르치려는 것을 알지 못하고 귀하와 얼마나 멀리 있는지 가르쳐주지 않습니다. 좀 더 구체적인 질문을 게시 할 수 있다면 더 멀리 도울 수 있습니다. 그것이 작동한다면'if' 문에는 아무런 문제가 없습니다. 게시 할 작업 코드가 있으면 개선 제안을 할 수 있습니다. – Brad