galera como está dito no titulo do tópico estou no segundo semestre. e estou fazendo uma aplicação para um trabalho de final de semestre, que se trata de um programinha para admistração de uma locadora. Com isso criei tres classes.Filmes, Clientes, Locadora(Classe principal), mas tenho uma dúvida eu pensava que todas as operações eram pra ser feitas na classe principal como: adicionarCliente, AdicionarFilime, Locação, mas meu professor falou que eu teria que criar uma classe locação. Como eu vou saber quando ter quer criar uma classe separada pra realizar alguma operação?
Isso é mais questão de lógica mesmo. Você tem que pensar orientado a objetos. Mas basicamente, você pode desenvolver do jeito que quiser se o seu professor não exigiu um design pattern. A lógica é sua. Mas ela deve ser aprimorada sempre, nao significa que a dele está certo. Pra mim, um bom software sempre tem um baita UML atrás, mas assim - no chutão, seria:
Você tem a superclasse locadora, dentro da locadora, o que tem? Subclasses: Clientes, filmes, funcionarios… Agora tem métodos que você tem que executar dentro de Clientes, como cadastrar novo, consulta, etc. Assim como dentro de filmes, funcionarios, etc.
Leia um pouco sobre padrão NetBeans, de nomenclatura. Ensina umas coisinhas legais.
O ideal e o que faz um software estável, é como você organiza o crescimento dele e a sua organização. Ele deve ter uma lógica simples em muitas coisas, preocupação com economia de memória, e todas as exceções devem ser postas. Se ocupar muita memória, threads são boas, enfim. Uma série de conceitos. Mas o segredo de tudo é organização!
Isso só vem depois de muita leitura e experiência.
Eu por exemplo tento me concentrar na própria linguagem que usamos para definir o problema. Por exemplo, em alguma funcionaliade se tenho que verificar se o usuário é gerente.
se o usuário é gerente ==> if (usuário.isGerente())
Isso fica ainda mais fácil em linguagens que não precisam de símbolos para indicar que estamos acessando um método, como os pontos e os parênteses, desse modo fica somente “if usuário isGerente”, talvez até “if usuário é gerente”. Se pudesse eu colocava direto “se usuário é gerente”.