Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/08/2016, 14:57
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: ¿ Estaría el código bien orientado a objetos ?

Código PHP:
Ver original
  1. <?php
  2.  
  3. class Empleado {
  4.     private $nombre;
  5.     private $apellidos;
  6.     private $dni;
  7.     private $sueldoAnual;
  8.  
  9.     public function __construct($nombre, $apellidos, $dni, Salario $sueldoAnual) {
  10.         $this->setNombre($nombre);
  11.         $this->setApellidos($apellidos);
  12.         $this->setDni($dni);
  13.         $this->setSueldoAnual($sueldoAnual);
  14.     }
  15.  
  16.     public function getPrimerApellido() {
  17.         $porcion = explode(" ", $this->getApellidos());
  18.         return $porcion[0];
  19.     }
  20.  
  21.     public function getSegundoApellido() {
  22.         $porcion = explode(" ", $this->getApellidos());
  23.         return $porcion[1];
  24.     }
  25.  
  26.     public function getNombre() {
  27.         return $this->nombre;
  28.     }
  29.  
  30.     public function getApellidos() {
  31.         return $this->apellidos;
  32.     }
  33.  
  34.     public function getDni() {
  35.         return $this->dni;
  36.     }
  37.  
  38.     public function getSueldoAnual() {
  39.         return $this->sueldoAnual;
  40.     }
  41.  
  42.     public function setNombre($nombre) {
  43.         $this->nombre = $nombre;
  44.     }
  45.  
  46.     public function setApellidos($apellidos) {
  47.         $this->apellidos = $apellidos;
  48.     }
  49.  
  50.     public function setDni($dni) {
  51.         $this->dni = $dni;
  52.     }
  53.  
  54.     public function setSueldoAnual(Salario $sueldoAnual) {
  55.         $this->sueldoAnual = $sueldoAnual;
  56.     }
  57.  
  58. }
  59.  
  60. class Salario {
  61.  
  62.     private $cantidad;
  63.  
  64.     public function __construct($cantidad) {
  65.         $this->setCantidad($cantidad);
  66.     }
  67.  
  68.     public function getCantidad() {
  69.         return $this->cantidad;
  70.     }
  71.  
  72.     public function setCantidad($cantidad) {
  73.         $this->cantidad = $cantidad;
  74.     }
  75.  
  76.     public function modificar($porcentaje) {
  77.         $nuevaCantidad= $this->getCantidad() + $this->porcentaje($porcentaje);
  78.         $this->setCantidad($nuevaCantidad);
  79.     }
  80.  
  81.     public function porcentaje($porcentaje) {
  82.         return $this->getSueldoAnual() * $porcentaje / 100;
  83.     }
  84.  
  85. }
  86.  
  87.  ?>

Todo esto es muy bonito como introducción a la programación orientada a objetos, pero programar aplicaciones tochas es muchísmo más complejo.
KISS, DRY, principios SOLID, patrones de diseño, arquitectura de software, código limpio, refactorización...