Adapter Pattern Örneği

Run Settings
LanguagePHP
Language Version
Run Command
<?php interface DatabaseInterface { public function connect(); public function query($sql); } class MySQLDatabase implements DatabaseInterface { public function connect() { echo "MySQLDatabase: Connected to MySQL database.\n"; } public function query($sql) { echo "MySQLDatabase: Executing query: $sql\n"; } } class PostgreSQLDatabase { public function establishConnection() { echo "PostgreSQLDatabase: Connected to PostgreSQL database.\n"; } public function executeQuery($sql) { echo "PostgreSQLDatabase: Executing query: $sql\n"; } } class DatabaseAdapter implements DatabaseInterface { private $postgreSQLDatabase; public function __construct(PostgreSQLDatabase $postgreSQLDatabase) { $this->postgreSQLDatabase = $postgreSQLDatabase; } public function connect() { $this->postgreSQLDatabase->establishConnection(); } public function query($sql) { $this->postgreSQLDatabase->executeQuery($sql); } } // Kullanım $mysqlDatabase = new MySQLDatabase(); $adapter = new DatabaseAdapter(new PostgreSQLDatabase()); $mysqlDatabase->connect(); $mysqlDatabase->query("SELECT * FROM users"); $adapter->connect(); $adapter->query("SELECT * FROM users"); // MySQLDatabase ve PostgreSQLDatabase sınıfları farklı arayüzlere sahiptir. // DatabaseAdapter sınıfı, DatabaseInterface arayüzünü uygulayarak PostgreSQLDatabase sınıfının arayüzünü taklit eder. // Böylece DatabaseAdapter sınıfı, mevcut MySQLDatabase sınıfının yerine geçebilir ve istemci kodu değiştirmeden yeni veritabanı sınıfını kullanabilir.
Editor Settings
Theme
Key bindings
Full width
Lines