내가이 INodeView 인터페이스
한 방법을 구현하는 것이 노드를 표시하는 다음
양식을 할 것 특정 질문에 대해서는이 site
에서 UI 패턴의 일부보고 추천 INodeTreeForm 인터페이스의 경우 개별 노드를 추가 할 수 있습니다. 그것은 NodeTreeScreen 객체에서 생성 된 Node 클래스를 전달할 것입니다. 두 가지 핵심 자산이 있습니다. 첫 번째 노드는 노드의 키이고 두 번째 노드는 노드 유형입니다.
키가있는 컨트롤에 필드가있는 방식으로 노드를 추가합니다.
INodeTreeForm 인터페이스와 함께 INodeView 인터페이스가 있습니다. 이것은 뷰 영역이나 전환 할 새 양식을 포함합니다.
노드를 클릭하면 NodeTreeScreen에 키가 전달되어 노드 유형이 달라집니다. 그것은 INodeView 객체들의 콜렉션을 가지고 있습니다. INodeView의 속성 중 하나는 노드 유형입니다.
올바른 INodeView를 검색합니다. 현재의 INodeview를 닫고, 현재의 INodeView를 검색 한 노드로 설정하고, 노드에 전달하고, 자신에게 표시되도록 지시합니다.
당신은 INodeView가 말하는 것을 선택할 수 있습니다. 서로 다른 유형별로 양식/컨트롤을 등록 할 수 있습니다. 예를 들어, INodeViewText, INodeViewImage 등. 또는 하나의 옴니버스 INodeViewForm과 INodeView를 구현하는 객체가 실제 그림을 처리하게합니다.
GUI 툴킷에 따라 이것은 하나의 양식이 많은 다른 인터페이스를 구현할 수 있음을 의미 할 수 있습니다.
노드 추가, 삭제 및 생성은 INodeTreeForm을 구현하는 양식과 NodeTreeScreen 간의 상호 작용을 통해 수행됩니다. 이 작업이 수행하는 작업 중에는 모델을 수정하기 위해 이미 생성 한 명령이 실행됩니다.
인터페이스 뒤에 모든 것을 구현하면 나머지 소프트웨어를 엉망으로 만들지 않고도 구현을 변경할 수 있습니다. 서로 다른 인터페이스를 구현하는 객체는 인터페이스를 올바르게 구현하는 한 다른 객체에 영향을주지 않고 변경할 수 있습니다.
이것은 Martin Fowler의 사이트에서 수동보기의 변형입니다.