Clase 3 POO

Clase 3 POO
parent e1f8706a
<?php
namespace Sisoft\Code;
class PagarConsignacion implements Pagar
{
public function tipoMedio()
{
return "Pago por consignación";
}
}
<?php
namespace Sisoft\Code;
use Sisoft\Code\Pagar;
class PagarEfectivo implements Pagar
{
public function tipoMedio()
{
return "Pago en Efectivo";
}
}
<?php
namespace Sisoft\Code;
use Sisoft\Code\Pagar;
class PagarPse implements Pagar
{
public function tipoMedio()
{
return "Pago por pse";
}
}
<?php
namespace Sisoft\Ica;
use Sisoft\Ica\StrategyInterface;
class Context
{
public $strategy;
public function __construct(StrategyInterface $strategy)
{
$this->strategy = $strategy;
}
public function handle()
{
$this->strategy->calcular();
}
}
<?php
namespace Sisoft\Ica;
class Ica
{
public function __construct()
{
//
}
public function calcularImpuesto()
{
return 100;
}
public function calcularDescuento()
{
return 0;
}
public function total()
{
return $this->calcularImpuesto() - $this->calcularDescuento();
}
}
<?php
namespace Sisoft\Ica;
use Sisoft\Ica\StrategyInterface;
class IcaCorozal extends Ica implements StrategyInterface
{
public function calcularDescuento()
{
return 20;
}
public function calcular()
{
return [
'impuesto' => $this->calcularImpuesto(),
'descuento' => $this->calcularDescuento(),
'total' => $this->total()
];
}
}
\ No newline at end of file
<?php
namespace Sisoft\Ica;
use Sisoft\Ica\StrategyInterface;
class IcaYopal extends Ica implements StrategyInterface
{
public function calcularDescuento()
{
return 10;
}
public function calcular()
{
return [4
];
}
}
<?php
namespace Sisoft\Ica;
interface StrategyInterface
{
public function calcular();
public function calcularDescuento();
}
<?php
namespace Sisoft\Mail;
class Correo
{
public function enviar()
{
return "Enviando correo por Mailgoo.";
}
}
<?php
namespace Sisoft\Mail;
use Sisoft\Mail\Correo;
class MensajeBienvenida
{
private $correo;
public function __construct(Correo $correo)
{
$this->correo = $correo;
}
public function mensaje()
{
return $this->correo->enviar();
}
}
<?php
namespace Sisoft\Mail\Refactorizar;
use Sisoft\Mail\Refactorizar\Tipo;
class Mailgoo implements Tipo
{
public function envio()
{
return "Enviando correo por Mailgoo.";
}
}
<?php
namespace Sisoft\Mail\Refactorizar;
use Sisoft\Mail\Refactorizar\Tipo;
class MensajeBienvenida
{
private $correo;
public function __construct(Tipo $correo)
{
$this->correo = $correo;
}
public function mensaje()
{
return $this->correo->envio();
}
}
<?php
namespace Sisoft\Mail\Refactorizar;
interface Tipo
{
public function envio();
}
\ No newline at end of file
<?php
namespace Sisoft\Mail\Refactorizar;
use Sisoft\Mail\Refactorizar\Tipo;
class Yusleidy implements Tipo
{
public function envio()
{
return "Enviando correo por Yusleidy.";
}
}
<?php <?php
use Sisoft\Ica\Ica;
use Sisoft\Ica\Context;
use Sisoft\Mail\Correo;
use Sisoft\Ica\IcaYopal;
use Sisoft\Code\Probador; use Sisoft\Code\Probador;
use Sisoft\Ica\IcaCorozal;
use Sisoft\Code\Programador; use Sisoft\Code\Programador;
use Sisoft\Reporte\ReporteJson; use Sisoft\Reporte\ReporteJson;
use Sisoft\Code\GestionProyectos; use Sisoft\Code\GestionProyectos;
use Sisoft\Code\PagarConsignacion;
use Sisoft\Mail\MensajeBienvenida;
use Sisoft\Contabilidad\Contabilidad; use Sisoft\Contabilidad\Contabilidad;
use Sisoft\Mail\Refactorizar\Mailgoo;
use Sisoft\Mail\Refactorizar\Yusleidy;
use Sisoft\Mail\Refactorizar\MensajeBienvenida as Mensaje;
require_once 'vendor/autoload.php'; require_once 'vendor/autoload.php';
/*clase 2
$probador = new Probador(); $probador = new Probador();
$gestion = new GestionProyectos(); $gestion = new GestionProyectos();
//echo $gestion->gestion($probador); //echo $gestion->gestion($probador);
echo $probador->impresion(); echo $probador->impresion();*/
/*$contabilidad = new Contabilidad;
/*clase 1
$contabilidad = new Contabilidad;
$reporte = new ReporteExcel(); $reporte = new ReporteExcel();
echo $reporte->formato($contabilidad); echo $reporte->formato($contabilidad);
$other = new Contabilidad(); $other = new Contabilidad();
$reporte = new ReporteJson(); $reporte = new ReporteJson();
echo $reporte->formato($other);*/ echo $reporte->formato($other);*/
/*$tipo = new PagarConsignacion();
echo $tipo->tipoMedio();*/
/*$correo = new Correo();
$mensaje = new MensajeBienvenida($correo);
echo $mensaje->mensaje();*/
// $mailGoo = new Yusleidy();
// $mensaje = new Mensaje($mailGoo);
// echo $mensaje->mensaje();
$ica = new Context(new IcaYopal());
$ica2 = new Context(new IcaCorozal());
dd([
'context1' => $ica,
'context2' => $ica2,
'yopal' => $ica->handle(),
'corozal' => $ica2->handle(),
]);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment