Modelo MVC em Desktop - ajuda em um projeto

Sei que tenho MUITOOSS tópicos aqui no GUJ sobre MVC, e eu olhei vários deles e ainda não cheguei em uma conclusão de como devo implementar meu projeto.

Seguinte:

Meu trabalho é implementar um aplicativo ligeiramente simples que precisa fazer um controle de inventario e movimentações de equipamentos. Um Equipamento obrigatoriamente tem que estar em alguma Sala. Uma Sala pode ter vários Equipamentos. Uma movimentação acontece pela mudança desses equipamentos de salas. Segue a imagem do meu diagrama de classes (por favor se tiverem outra sugestao ou indicios de erros digam!).
http://img192.imageshack.us/img192/9039/diagramadeclasse.jpg

Enfim entendendo o problema não sei como implementar isto usando o padrão MVC.

Por exemplo eu teria uma classe bean chamada Sala:

[code]
public class Sala {
//atributos

//setters and getters
}[/code]

Depois eu implementaria o DAO onde seria responsável por fazer a manipulação no banco de dados:

[code]
public classe SalaDAO {

public void inserirSala(Sala sala) {
//logica }

public void alterarSala(Sala sala) {
//logica }

public void excluirSala(Sala sala) {
//logica }

public List consultarSala() {
//logica }

//outros métodos de consultas…
}[/code]

Depois eu implementaria o controller onde seria o responsável por fazer a interligação do DAO com o view:

[code]
public class SalaController {

public void inserirSala(Sala sala) {
SalaDAO dao = new SalaDAO();
dao.inserirSala(sala);
//mais ou menos assim…
}

public void alterarSala(Sala sala) {
//logica }

public void excluirSala(Sala sala) {
//logica }

public List consultarSala() {
//logica }
}[/code]

E por fim eu teria meu view, que seria meu JFrame com os componentes swing…

Seria isso? ou estou fazendo coisa errada? como eu usaria interfaces? (teria q implementaruma interface para cada DAO que eu fizer?)?

Por favor alguem me ajude =/

A arquitetura do Swing já é MVC:
http://java.sun.com/products/jfc/tsc/articles/architecture/
http://www.developer.com/design/article.php/3336761

Eu geralmente não crio aquelas classes de controle (note que os projetistas do Swing optaram explicitamente por não fazer isso, o que chamam de “simplified model-view” ou “separable model architecture”). Quem toma esse papel é o próprio mecanismo de eventos do Swing, as classes de “model” (TableModel, ComboBoxModel, ListModel) e as exceptions. Se você quer usar MVC corretamente no Swing, fuja das classes Default (DefaultTableModel, por exemplo) e aprenda a implementar seu próprio código de controle nessas classes. E, claro, não chame o JOptionPane diretamente das suas classes de negócio (um erro super comum, por sinal), e sim, faça-o aparecer nas classes da view, como resultado de uma exception capturada.

A camada de controle no Swing também pode ser simplificada pelo fato de aplicações desktop terem a lógica de negócio e a view no mesmo local. Dificilmente há a necessidade de um protocolo mais sofisticado entre eles, como o HTTP. O mecanismo de eventos e exceptions encaixa-se perfeitamente nesse papel, trocando informações entre view e modelo sem burocracias.