シングルトンパターンは、ソフトウェア設計の中で使われるデザインパターンの一つです。
このパターンの目的は、特定のクラスが唯一のインスタンスを持つようにすることです。
シングルトンパターンを使用すると、複数の場所から同じインスタンスにアクセスでき、データの一貫性を保つことができます。
LoggerSingletonクラスは、ログメッセージを管理するための唯一のインスタンスを提供します。
getInstance()メソッドを使用して、この唯一のインスタンスにアクセスできます。
ログメッセージはaddMessage()メソッドを使って追加し、showMessages()メソッドで表示できます。
シングルトンパターンにより、どこからでも同じログ記録器にアクセスでき、ログメッセージを一貫して管理できます。
<?php
class LoggerSingleton
{
private static LoggerSingleton $instance;
private array $messages = [];
public static function getInstance(): self
{
if (isset(self::$instance)) {
return self::$instance;
}
self::$instance = new self();
return self::$instance;
}
public function addMessage(string $message): void
{
$this->messages[] = $message;
}
public function showMessages(): void
{
foreach ($this->messages as $message) {
echo $message . PHP_EOL;
}
}
private function __construct()
{
// 外部からのインスタンス作成禁止
}
private function __clone(): void
{
// 外部からのインスタンス複製禁止
}
}
<?php
$loggerSingleton = LoggerSingleton::getInstance();
$loggerSingleton->addMessage('Message A');
$loggerSingleton->addMessage('Message B');
$loggerSingleton->showMessages();