Junior — Middle
Μπορείς να αναφέρεις τα βασικά μοτίβα προγραμματισμού αντικειμενοστραφούς προγραμματισμού;
sobes.tech AI
Απάντηση από AI
Τα βασικά μοτίβα του αντικειμενοστραφούς προγραμματισμού (ΟΟΠ) περιλαμβάνουν:
- Κληρονομικότητα (Inheritance): επιτρέπει τη δημιουργία νέων κλάσεων βασισμένων σε υπάρχουσες, κληρονομώντας τις ιδιότητες και τις μεθόδους τους.
- Ενθυλάκωση (Encapsulation): κρύβει τις εσωτερικές λεπτομέρειες της υλοποίησης ενός αντικειμένου, παρέχοντας πρόσβαση μόνο μέσω δημόσιων μεθόδων.
- Πολυμορφισμός (Polymorphism): η ικανότητα αντικειμένων διαφορετικών κλάσεων να ανταποκρίνονται διαφορετικά στα ίδια μηνύματα (μεθόδους).
- Αφηρημένη (Abstraction): αναδεικνύει τα ουσιώδη χαρακτηριστικά του αντικειμένου, κρύβοντας τις μη ουσιώδεις λεπτομέρειες.
Αυτά τα μοτίβα βοηθούν στη δημιουργία ευέλικτων, επεκτάσιμων και εύκολων στη συντήρηση προγραμμάτων.
Παράδειγμα σε Go (χρήση διεπαφών για πολυμορφισμό):
package main
import "fmt"
type Animal interface {
Speak() string
}
type Dog struct{}
func (d Dog) Speak() string {
return "Γαβ!"
}
type Cat struct{}
func (c Cat) Speak() string {
return "Μιαου!"
}
func main() {
animals := []Animal{Dog{}, Cat{}}
for _, animal := range animals {
fmt.Println(animal.Speak())
}
}
Σε αυτό το παράδειγμα, διαφορετικοί τύποι υλοποιούν μια ίδια διεπαφή, επιδεικνύοντας πολυμορφισμό.