#MOC [[🗃️デザインパターン]]の1つ。 [[🗃️インスタンス]]の生成を専門に行う[[🗃️クラス]]を作ることで、一連の[[🗃️オブジェクト]]群を正確に生成するためのパターン。 ```mermaid classDiagram UIAbstractFactory <|.. LightThemeFactory UIAbstractFactory <|.. DarkThemeFactory Button <|.. LightButton Button <|.. DarkButton Modal <|.. LightModal Modal <|.. DarkButton class UIAbstractFactory{ } class LightThemeFactory{ } class DarkThemeFactory{ } class Button{ } class LightButton{ } class DarkButton{ } class Modal{ } class LightModal{ } class DarkModal{ } ``` ```php interface UIAbstractFactory { public function createButton(); public function createModal(); // Add other UI components... } class LightThemeFactory implements UIAbstractFactory { public function createButton() { return new LightButton(); } public function createModal() { return new LightModal(); } // Implement other UI components... } class DarkThemeFactory implements UIAbstractFactory { public function createButton() { return new DarkButton(); } public function createModal() { return new DarkModal(); } // Implement other UI components... } interface Button {} class LightButton implements Button {} class DarkButton implements Button {} interface Modal {} class LightModal implements Modal {} class DarkModal implements Modal {} // Client code function renderUI(UIAbstractFactory $factory) { $button = $factory->createButton(); $modal = $factory->createModal(); // Render the UI with the created components... } // Use Light theme renderUI(new LightThemeFactory()); // Use Dark theme renderUI(new DarkThemeFactory()); ``` ## 📚ドキュメント - [8. AbstractFactory パターン | TECHSCORE(テックスコア)](https://www.techscore.com/tech/DesignPattern/AbstractFactory) ## 📖ノウハウ ## 💁トラブルシューティング