Junior — Middle
Ποιο μοτίβο σχεδίασης είναι καλύτερο να εφαρμοστεί κατά τη δημιουργία ενός αντικειμένου, λαμβάνοντας υπόψη διαφορετικές συνθήκες υλοποίησης;
sobes.tech AI
Απάντηση από AI
Για τη δημιουργία ενός αντικειμένου με διαφορετικές συνθήκες υλοποίησης, είναι καλύτερο να εφαρμόσετε το πρότυπο σχεδίασης "Εργοστάσιο" (Factory) ή "Αφηρημένο Εργοστάσιο" (Abstract Factory).
Αυτό το πρότυπο επιτρέπει την ενσωμάτωση της λογικής δημιουργίας αντικειμένων και την επιλογή της συγκεκριμένης κλάσης για δημιουργία ανάλογα με τις συνθήκες κατά την εκτέλεση.
Παράδειγμα απλής μεθόδου εργοστασίου:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// εγγραφή σε αρχείο
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// εγγραφή στη βάση δεδομένων
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Άγνωστος τύπος logger');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Μήνυμα');
Έτσι, μπορείτε να δημιουργείτε αντικείμενα ευέλικτα ανάλογα με τις συνθήκες.