development:software-architecture:design-patterns:factory
This is an old revision of the document!
Factory
Trong số những kiểu mẫu thiết kế hay design pattern trong PHP thì Factory là một trong những pattern được sử dụng phổ biến nhất.
class XMLParser { function __construct($filePath) { file_get_content($filePath); } } class JSONParser { function __construct($filePath) { file_get_content($filePath); } } abstract class ParserFactory { public static function __construct($param) { if ($param['type'] = 'XML') { return new XMLParser($param["filePath"]); } if ($param['type'] = 'JSON') { return new JSONParser($param["filePath"]); } } }
Ở trên chúng ta có hai class là XMLParser và JSONParser dùng để parse nội dung của tập tin tuỳ thuộc vào tập tin được lưu dưới định dạng là XML hay JSON. Tuy nhiên thay vì tạo parser object trực tiếp từ hai class này mà thông qua một Factory class ParserFactory.
Như ví dụ trên nếu chúng ta thay đổi tên của class XMLParser thì chúng ta chỉ cần thay đổi một dòng code trong method construct của ParserFactory. Nếu như chúng ta không sử dụng Factory thì sẽ phải thay đổi ở tất cả các object được tạo từ class XMLParser.
Tham khảo
development/software-architecture/design-patterns/factory.1722927590.txt.gz · Last modified: 2024/08/06 06:59 by 127.0.0.1