Dúvida sobre Modelagem Classes/Banco

Pessoal, estou com uma dúvida em relação a como os objetos deveriam se relacionar no meu sistema.

No seguinte aspecto :

Tenho uma tela de cadastro de clientes, nesta tela cadastro tanto clientes pessoa física quanto pessoa jurídica.
Tenho um radio button que me informa o tipo do cliente.

Minha dúvida está na hora de fazer o registro deste cliente no banco de dados.
No meu DAO, vejo dois métodos p/ fazer o insert. Um seria o inserirCliente(ClientePF c) e outro inserirCliente(ClientePJ c), então por polimorfismo o método correto seria invocado.

Mas não consigo enchergar uma maneira de instanciar este objeto no meu Model, pois eu não queria fazer um if testando qual tipo de cliente foi selecionado na View e não teria como instanciar o objeto mais genérico (no caso Cliente) pois senão eu não teria acesso aos métodos do objeto específico.

Não sei se fui claro… Alguém poderia me ajudar ?

Não vejo problemas em fazer o IF para testar qual objeto instanciar.

As informações dos dois tipos de clientes são muito diferentes? Você poderia abstrair em apenas um objeto. Ele teria um atributo para diferenciá-lo entre PJ ou PF.

Neste caso você teria apenas um método no seu DAO.

P/ este caso simpless que postei tb n vejo pq fazer um IF, mas acredito que tenha uma maneira menos feia de se fazer isso.

Penso num sistema maior, ficaria terrível ter que ficar enchendo o código de pequenos remendos.

Talvez eu esteja enganado, mas resolvi postar p/ tirar a dúvida.

a idéia é projetar a interface para evitar este monte de IF.
Mas tem horas que não tem como fugir.