Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
final paradigmas 23/02/2019
Autor Mensaje
okks Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 22
Agradecimientos dados: 6
Agradecimientos: 15 en 10 posts
Registro en: Mar 2019
Mensaje: #1
final paradigmas 23/02/2019 Finales Paradigmas de Programación
Hola! estoy preparando el final para febrero, hice esta resolucion de la parte A de wollk , si alguien lo hizo para comparar resultados.
dejo el link abajo del final
https://docs.google.com/document/d/1kKkH...yTeQI/edit
saludos

Parte A)
1) a)Falso. No es correcto que la clase empresa sea la que realice la lógica de un producto , el paradigma de ojetos no intenta representar fielmente la realidad sino modelarla, lo correcto seria delegar responsabilidades de venta para las clases PlanVip, PlanNormal.
b) Falso, no es correcto preguntar a los planes PlanVip y PlanNormal si es esVip, ya que se esta preguntando para cada plan si es Vip, no es un buen uso del polimorfimo aunque reciban un mismo mensaje, esta hecho para tomar una decisión desde afuera.
c) verdadera, gracias a que se resuelve con composición (el cliente conoce su plan y se puede realizar una asignación para cambiar el plan del cliente), es posible cumplir con lo que se pide.
d) falso, lo correcto seriá que en la clase Cliente el mensaje pagar : monto, se le pregunte si el dinero es mayor al monto, si es verdadero, se le descuenta el dinero según el plan que tenga cada cliente, y si es False se arroja una excepción que no tiene suficiente dinero
2)
class Empresa {
method venderA(producto, cliente){
if(not producto.hayStock()){
return false
}
if (cliente.pagar(cliente.plan().precioAPagar(producto, cliente))){
cliente.agregarProducto(producto)
producto.decrementarStock()
}
return true
}
}
class Producto{
var stock
var costo
method costo() = costo
method decrementarStock(){
stock -= 1
method hayStock(){
return stock >= 1
}
}

class PlanVip {
method precioAPagar(producto, cliente){
return producto.costo() * 0.75
}
}

class PlanNormal {
method precioAPagar(producto, cliente){
if(not cliente.yaCompro()){
return producto.costo() * 0.9
} else {
return producto.costo()
}
}
}

class Cliente {
var productos = #{}
var dinero
var plan

method plan() = plan

method pagar(monto) {
if(dinero >= monto){
dinero -= monto
return true
}else{
self.error("No tiene suficiente dinero")
return false
}
}

method yaCompro(){
return not productos.isEmpty()
}

method agregarProducto(producto){
productos.add(producto)
}
}
25-01-2020 19:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] okks recibio 1 Gracias por este post
Makellos (29-02-2020)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.