fragment는 view와 control위주의 기능을 담당하지만 이정도 규모에서는 그냥 무시하고 fragment 마다 걍 구현해도 됩니다. model을 분리하는 것이 중요합니다. model 클래스를 따로 만들고 이를 생성해서 각 fragment의 멤버로 추가해서 사용하면 될것 같네요. 그 외의 keydown 같은 것들은 inteface에 뺄 필요도 없지 않나요? fragment 에 이미 선언되어 있는걸요. dbquery는 상태의 유무에 따라 다르겠지만 helper클래스 정도로 빼서 대충 써도 됩니다.
결론은 지금 단계에선 그냥 짜고 완료된 다음에 refactoring하는게 보다 현실적일 것으로 보입니다.