ファクトリー
ファクトリー(モダンPHP開発とアーキテクチャ)
意味 オブジェクト生成を代行
ファクトリーとは?
ファクトリーパターンは、オブジェクトの生成を専門のクラス(ファクトリー)に任せるデザインパターンです。これにより、オブジェクト生成のロジックを集中管理でき、コードの再利用性と保守性が向上します。また、生成するオブジェクトの型を実行時に決定できる柔軟性も提供します。
ファクトリーの具体的な使い方
ファクトリーパターンの実装と使用例
<?php
// 抽象的な車のインターフェース
interface Car
{
public function drive();
}
// 具体的な車のクラス
class Sedan implements Car
{
public function drive()
{
return 'セダンが走ります。';
}
}
class SUV implements Car
{
public function drive()
{
return 'SUVが走ります。';
}
}
// ファクトリークラス
class CarFactory
{
public static function createCar($type)
{
switch ($type) {
case 'sedan':
return new Sedan();
case 'suv':
return new SUV();
default:
throw new Exception('不明な車種です。');
}
}
}
// ファクトリーの使用例
try {
$sedan = CarFactory::createCar('sedan');
echo $sedan->drive() . "\n";
$suv = CarFactory::createCar('suv');
echo $suv->drive() . "\n";
// 存在しない車種を指定
$unknown = CarFactory::createCar('truck');
} catch (Exception $e) {
echo '車の作成に失敗しました: ' . $e->getMessage() . "\n";
}
👇出力結果
セダンが走ります。
SUVが走ります。
車の作成に失敗しました: 不明な車種です。
この例では、車を生成するファクトリーパターンを実装しています。CarFactoryクラスがcar(車)オブジェクトの生成を担当し、createCarメソッドに車の種類を指定すると、対応する車のオブジェクトが生成されます。これにより、車の生成ロジックを1箇所にまとめ、新しい車の種類の追加も容易になります。また、存在しない車種を指定した場合の例外処理も含んでいます。
ファクトリーに関するよくある質問
ファクトリーが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのファクトリーやORM、SOLID、CodeIgniter、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
PHPを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!