Um classe cliente pode ter um método “pedir()”? que pede um produto por exemplo ou só deve ter métodos que pertencem a classe?
Responsabilidade de classes
7 Respostas
Basicamente falando, NÃO.
Como é que definimos isso?
Existe um conceito em Orientação a Objeto que cada classe deve possuir somente uma responsabilidade, uma unica, sem mais, então a classe de Cliente tem a responsabilidade UNICA, e a um classe Pedidos tem a responsabilidade de fazer pedidos, utilizando Cliente. Veja a lógica empregada é do dia a dia, e quando se faz isso o seu sistema fica preparado para que esse Cliente tenha vários pedidos, uma relação de Banco 1 Cliente pode ter vários Pedidos.
Veja tudo vai se encaixando se fizer o correto, então, não coloque responsabilidade aonde ela não é pertinente, e cada classe tem uma única responsabilidade.
Na minha opinião, seu texto não tem fundamentos necessários para que possamos julgar se esse tal “pedir()” faz parte da responsabilidade unica dessa classe ou não. Quem vai indicar isso é domínio da solução…
Cite situações aonde ele pode ter esse pedir dentro da classe Cliente?
Não tenho a minima idéia, mas em regra de analise, interpretação e abstração…tudo é possível, volátil e flexível de ser ou mudar, não existindo certo ou errado. Julgar responsabilidade unica sem contexto de negocio não da…é especulação.
é difícil fazer sistemas, nada impede fazer errado e nada impede fazer certo, é a escolha de como fazer, agora, eu nunca vou colocar pedir (que no caso é um pedido pelo contexto oferecido) dentro de Cliente, não é responsabilidade do Cliente fazer isso, o Cliente faz parte de pedido que também tem produtos, e outras particularidades. Veja, existem muita gente usando DDD errado, por causa disso mesmo. Esses dias eu vi um fato real de Cliente e E-mail.
Só quero deixar claro que respeito a sua opinião, mas, discordo, nesse pequeno contexto e se for grande também discordo, eu queria ver uma situação, mas, você disse que não tem a minima idéia.
Concordo com vc…mas para julgar o todo vc tem que ter o contexto. Não temos o contexto…Eu não consigo afirmar isso …se vc consegue ok! kkk
Relaxa brother…
Veja não é uma discussão, é um debate saudável.