Mantenga el pensamiento simple & piense en voz alta. regla de oro para la identificación de responsabilidades (comienzo de un conjunto de acciones simples):
hacer las siguientes preguntas (de hecho muchas preguntas) en el objeto modelado:
¿Puede el objeto venido a vivir ¿por sí mismo? ¿O es un instrumento para una transacción? ¿Tiene sentido solo cuando se trabaja con otros objetos? (Factor de dependencia)
¿Qué puede hacer el objeto por sí mismo?
¿Qué acciones pueden realizarse en el objeto por otros objetos?
¿Qué se puede hacer con el objeto, con sus datos o con su estado?
(es decir) una cuenta no puede debitarse/acreditarse. eso simplemente no tiene sentido. Pero puede usarse como el instrumento que el sistema, el banquero o el cliente deben cargar o abonar.
Identifique las acciones mirando desde diferentes perspectivas, según quién utilizará este objeto y con qué propósito (es decir, un objeto de cuenta de los ojos de un banquero, de los ojos de un cliente, desde los ojos de un sistema - etc.)
"una cuenta bancaria actúa como un instrumento común para la transacción entre el cliente y el banco, ambos utilizan desde diferentes perspectivas. El banco lo utiliza como una clave para administrar el dinero de los clientes mientras el el cliente lo usa como un instrumento para realizar transacciones ".
Lo que es un depósito/retiro a un cliente es un débito/crédito para el banco. Y el banco usaría la cuenta para varios fines internos (por ejemplo, notificar al cliente sobre su crédito de salario con una alerta) mientras que las acciones del cliente para la cuenta son limitadas.
Intenta formar oraciones simples, fuera de los objetos que colaboran con los demás, si son significativos, eres bueno. si no, reconsidere.
cuenta
un banco,
- es propiedad de un cliente - que puede posiblemente
- depositar dinero
- retirar dinero
- consultar el saldo
- puede emitir un cheque de su cuenta
- puede transferir cantidades a otras cuentas
- puede pagar las facturas
- puede conseguir su salario acreditados en la cuenta
- puede obtener los descubiertos
- pertenece al banco - que puede posiblemente
- utilizar la cuenta como un instrumento para realizar un seguimiento el dinero y las transacciones de la cuenta
- almacena y mantiene toda la información & de dinero
- restringe el acceso al titular de la cuenta & proporciona seguridad para su dinero
- etc.
aplausos
-sundar
parece una sólida lista de responsabilités. Pero eso significa al menos 3 objetos. ¿Estás diciendo que 'Cuenta bancaria' es un modelo demasiado general para empezar y el código del cliente debería interactuar con objetos como TransactionList, Balance, etc.? Entonces, ¿todo el paquete de clases es un modelo de cuenta bancaria? – koen
No, no es así. una cuenta bancaria es un solo objeto que tiene tres responsabilidades. Casi todos los objetos tienen más de una responsabilidad. La cuenta bancaria puede usar una lista de transacciones (por ejemplo) para implementar algunas de las responsabilidades. –