Desenvolvimento modular

Boa tarde,

Estava pensando em como criar duas classes que compilem e executem independentes e dependentes.

Por exemplo:

Tenho um classe bairro e dentro dela existe um método excluir.
Tenho outra classe pessoa e dentro dela existe um atributo idBairro.

No médoto excluir da classe bairro eu tenho que verificar se esse bairro esta vinculado a uma pessoa e utilizo a classe pessoa que possui um método que verifica se existe alguma pessoa com esse bairro, se existir eu não posso excluir.

De repente no meu projeto a classe pessoa vai sumir, pois o módulo pessoa não vai ser instalado nesse cliente e agora tenho que modificar o código?! Imaginem de existisse mais 15 módulos!!!

:?: Dúvida: existe alguma maneira dessas duas classes compilarem caso a outra não esteja no meu projeto?

Use interfaces para fazer isso.

Veja sobre acoplamento abstrato ou padrão strategy:

Você precisa definir alguns módulos que possuem o ‘mínimo necessário’ para seu sistema. Estes módulos devem sempre estar instalados.

Existe uma vasta literatura sobre componentes de software, procure no google ou sua livraria predileta.