Quero utilizar o conceito do DDD, mas estou com dificuldades de implementar na pratica

Olá !!

Quero realizar um cadastro de Corretor(site para imobiliaria) e estou com algumas dúvidas em relação ao cadastro do corretor e a busca dos corretores.

eu fiz assim:

para realizar o cadastro de corretor

Corretor corretor = new Corretor();
CorretorDao corretordao = new corretorDao();   
corretordao.cadastrar(corretor);

para realizar uma pesquisa eu fiz assim:

List<Corretor> listaCorretorAtivos = new List<Corretor>();
CorretorRepositorio corretorRepositorio = new CorretorRepositorio();
listaCorretorAtivos = corretorRepositorio.buscarCorretoresAtivos();

esta correto a utilização das classes ?
utilizei o dao apenas para as operacoes de CRUD e o Repository para a busca.

quero utilizar o conceito do DDD.
esta correto o que eu fiz ?

andei lendo alguns artigos na internet e percebi que as classes Dao estão sendo utilizadas no lugar errado.

Eu criei uma classe de servico responsavel pela persistencia do corretor no banco de dados.

public class ServicoPersistenciaCorretor{

         public boolean validarCadastro(Corretor corretor){

             return true
         }
         public void Cadastrar(Corretor corretor){
                    if(validarCadastro(corretor)){
                            CorretorDao corretordao = new corretorDao();      
                            corretordao.cadastrar(corretor); 
                   }
                   else{
                        //informar o erro para o usuario
                   }
          }

}