Ho una semplice notifica di classe, che ha alcune proprietà (titolo, corpo, op) e solo getter / setter. Tra tutti i miei progetti userò diversi tipi di notifiche, questo è oggetti di notifica ma con titolo, corpo, op diversi a seconda della logica di quella parte.
Mi chiedo quale sarebbe l'apice migliore per implementarlo. Ho pensato di usare un qualche tipo di polimorfismo che avrebbe funzionato, ma non sono sicuro che sarebbe stato un overcoding. Ecco la notifica della classe:
<?php
namespace App\Library\Notifications;
/**
* Class Notification
*/
class Notification
{
/** @var string $title*/
private $title;
/** @var string $body */
private $body;
/** @var string $op */
private $op;
/**
* Constructor
*/
public function __construct()
{
$this->title = '';
$this->body = '';
$this->op = '';
}
public function getTitle(): string
{
return $this->title;
}
public function getBody(): string
{
return $this->body;
}
/**
* String that tells the apps which kind of notification
* we are sending so they can act depending of the type
*
* @return string
*/
public function getOp(): string
{
return $this->op;
}
}
Ed ecco una sottoclasse:
<?php
namespace App\Library\Notifications;
use Illuminate\Support\Facades\Lang;
/**
* Class Notification
*/
class OtherAcceptedTripNotification extends Notification
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->title = Lang::get('notifications.other_accepted_trip_title');
$this->body = Lang::get('notifications.other_accepted_trip_body');
$this->op = 'OA';
}
}